为什么vim难以复制到系统剪贴板?

时间:2016-09-19 12:48:08

标签: vim

根据official vim wiki将任何文本复制到系统剪贴板中是我从未期望在人类创建的文本编辑器中看到的内容。

gg"+yG - 将整个缓冲区复制到+(正常模式)

使用 6次击键在浏览器和文本文件之间复制/粘贴是我拒绝接受的正常情况。

是否有合理的替代品?

3 个答案:

答案 0 :(得分:4)

这并不难,它很强大。由于y ank命令采用{motion},您可以使用相同的命令复制任意(和精确选择的)文本区域。同样,"+只是众多目的地之一,而Vim的命名寄存器非常有用。

您可能已经注意到大多数人(有时很多)都会自定义他们的Vim设置。除了强大的编辑抽象之外,它还将其置于另一个层面(现在以牺牲Vim配置为代价)。

因此,如果您需要经常将整个缓冲区复制到系统剪贴板,请创建自己的快捷方式,并将其保留在~/.vimrc中。例如:

:nnoremap <F2> :%yank +<CR>

你有它:用一次击键复制(cp。:help key-notation指定键的方式;因为功能键很稀疏,我宁愿选择<Leader>y。)

如果您经常将(各个区域)拉到系统剪贴板,那么使默认寄存器也值得:

:set clipboard^=unnamedplus

答案 1 :(得分:2)

要打破它:

  

GG

  1. Move the cursor到缓冲区的开头
  2.   

    “+

    1. 将复制目标设置为系统剪贴板register
    2.   

      YG

      1. 复制(“yank”)从光标位置到end of the buffer的所有内容(即整个文件)。
      2. 举另一个例子。如果您只想将当前单词复制到剪贴板,则可以执行以下操作:

        "+yw
        

        因为“w”是将光标移动到当前单词末尾的命令。

        如果您想缩短定期重复的操作,可以record a macromap a keyboard shortcut

答案 2 :(得分:2)

当我想要复制整个文件时,我只需要:%y+

:输入ex命令

y[ank]

+到剪贴板寄存器