Intellij IDEA 与 ideavim。无法从其他来源复制文本

问题描述 投票:0回答:3

我尝试使用默认的 vim 键绑定(y)使用 ideavim 插件从 IDEA 复制文本。但这段文本没有复制到全局缓冲区中,我只能将其粘贴到 IDEA 中。
例如,如何在浏览器中使用复制的文本?

intellij-idea copy buffer ideavim
3个回答
199
投票

Vim 的 yank 命令默认情况下不会拉入系统剪贴板;它拉到未命名的寄存器。您可以使用 * 或 + register 访问系统剪贴板;另请参阅此 wiki article 了解更多信息。或者只需在您的 ~/.ideavimrc:

 中设置 
此选项

set clipboard+=unnamed

自从

VIM-476
在 0.38 版本中实现以来,IdeaVim 就支持这个 ~/.ideavimrc 设置。如果该文件不存在,请在您的用户/主目录中创建它。

另请注意,这都是标准的 Vim 行为;除了配置文件的名称之外,没有一个是特定于 IdeaVim 的。


1
投票

另一个选择是你可以进入ideavim插件的设置,将

ctrl + c
ctrl + v
设置为由IDE处理,而不是由vim处理。

这将允许您像往常一样在 IDE 中复制和粘贴,也可以在 IDE 外部粘贴。

注意

当您将

ctrl + v
设置为由 IDE 处理
ctrl + v
进行选择时,在 VIM 中将不起作用。作为替代方案,您可以在 IDE 中使用
ctrl + shift + v
作为默认值(默认情况下适用于粘贴选择)

步骤

在右下角选择设置:

然后搜索快捷方式并选择处理程序选项

IDE


0
投票

接受的答案还将删除的内容复制到系统剪贴板(使用

d
dd
,...),基本上将删除变成“剪切到剪贴板”操作。如果(像我一样),这根本不是您想要的,您可以将以下映射添加到
~/.ideavimrc

# Use system clipboard by default for y and p operations

nnoremap yy "+yy
vnoremap y "+y

nnoremap p "+p
vnoremap p "+p
nnoremap P "+P
vnoremap P "+P

# Allow access to original y and p operations with leader key, e.g. to use registers

nnoremap <leader>yy yy
vnoremap <leader>y y

nnoremap <leader>p p
vnoremap <leader>p p
nnoremap <leader>P P
vnoremap <leader>P P

# Allow to cut to system clipboard by using leader key with d

nnoremap <leader>dd "+dd
vnoremap <leader>d "+d

(由 https://gist.github.com/RobertAudi/11ffa90f4952e5923ce7 和 @albert-bici 提供)

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.