如何在vim中将选定的行复制到剪贴板

ash*_*him 75 vim

如何在vim中将选定的行复制到剪贴板.我知道如何为所有文本文件执行此操作,但我想为选定的行执行此操作.谢谢!

Spe*_*bun 96

SHIFTV让你进入选择线模式.然后"*y将当前选定的行拉到*作为剪贴板的寄存器.出于不同的目的,有很多不同的寄存器.有关Windows和Linux selection and drop registers之间的差异*+注册表的详细信息,请参阅参考资料部分.

  • 在Linux中,+是全局剪贴板,*是选择剪贴板,而在Windows中都映射到全局剪贴板. (7认同)
  • 在Mac Terminal中有什么方法吗?不需要安装东西... (2认同)

Sua*_*uan 69

如果您使用的是Linux并使用的是VI.7版本7.3.74或更高版本(从Ubuntu 11.10开始安装的版本满足此要求),您可以执行此操作

set clipboard=unnamedplus

这会将被拉动的文本放入全局剪贴板,并允许您从全局剪贴板粘贴,而无需使用任何特殊寄存器.与ldigas的解决方案不同,这也适用于非gui版本的VIm.

  • 这只适用于我安装`vim-gnome`包而不是`vim`. (7认同)
  • @ dan-klasson:这个选项需要一个用剪贴板支持编译的vim.你可以输入`vim --version |来检查是否是这种情况 grep"+ xterm_clipboard"`. (4认同)
  • 如果您使用的是 macOS,您可能需要使用 `clipboard=unnamed` 代替 (http://vim.wikia.com/wiki/Accessing_the_system_clipboard) (2认同)

Roo*_*ook 12

set guioptions+=a
Run Code Online (Sandbox Code Playgroud)

呃,简而言之,无论何时你选择/抽出一些把它放在剪贴板中的东西(不是Vim,而是窗口系统的全局键盘).这样你就不必考虑将东西放入特殊的寄存器中.

  • //,这个建议适用于哪些操作系统和/或Vim版本? (2认同)

ABN*_*ABN 11

首先检查你的 vim 安装是否支持剪贴板。

\n
vim --version\n
Run Code Online (Sandbox Code Playgroud)\n

如果安装了剪贴板支持,您将看到:

\n
+clipboard\n+X11\n+xterm_clipboard\n
Run Code Online (Sandbox Code Playgroud)\n

如果未安装剪贴板支持,您将看到:

\n
-clipboard\n-X11\n-xterm_clipboard\n
Run Code Online (Sandbox Code Playgroud)\n

要安装剪贴板支持:

\n
apt-get install vim-gnome\n
Run Code Online (Sandbox Code Playgroud)\n

确认已安装剪贴板支持后,请执行以下操作:

\n
    \n
  1. 将光标定位到要复制的第一行。
  2. \n
  3. Shiftv进入可视模式。
  4. \n
  5. \xe2\x86\x93选择多行
  6. \n
  7. 按此键"+y将所选文本复制到系统剪贴板。
  8. \n
  9. 现在您可以将选定的文本复制到浏览器、文本编辑器等。
  10. \n
  11. "+p如果要将系统剪贴板文本复制到 vim,请按此键。
  12. \n
\n

如果您必须重复从 Vim 复制到系统剪贴板,反之亦然,则上述步骤可能会变得乏味。\n您可以创建 Vim 快捷方式,以便在按下时Ctrlc所选文本将被复制到系统剪贴板。当您按下Ctrlp系统剪贴板时,文本将被复制到 vim。创建快捷方式:

\n
    \n
  1. 打开 .vimrc 文件并在文件末尾添加以下文本:

    \n
     nnoremap <C-c> "+y\n vnoremap <C-c> "+y\n nnoremap <C-p> "+p\n vnoremap <C-p> "+p\n
    Run Code Online (Sandbox Code Playgroud)\n
  2. \n
  3. 保存并重新加载 .vimrc 以应用新的更改。

    \n
  4. \n
  5. 将光标定位到要复制的第一行。

    \n
  6. \n
  7. Shiftv进入可视模式。

    \n
  8. \n
  9. \xe2\x86\x93选择多行

    \n
  10. \n
  11. 按此键Ctrlc将所选文本复制到系统剪贴板。

    \n
  12. \n
  13. 现在您可以将选定的文本复制到浏览器、文本编辑器等。

    \n
  14. \n
  15. Ctrlp如果要将系统剪贴板文本复制到 vim,请按此键。

    \n
  16. \n
\n

注意:这是针对 ubuntu 系统的。

\n


Moh*_*ish 10

对于GVIM,点击v进入视觉模式; 选择文本并点击Ctrl+Insert以将选择复制到全局剪贴板.

从菜单中可以看到快捷键是,"+y按住Shift键,然后按",然后按+释放Shift并按y(与Shift + Insert相比较麻烦).


ano*_*ous 6

如果您在MAC OSX中使用vim,不幸的是它附带了较早的版本,并且不符合剪贴板选项。幸运的是,自制软件可以轻松解决此问题。

安装vim:

brew install vim --with-lua --with-override-system-vim

安装vim的gui版本:

brew install macvim --with-lua --with-override-system-vim

重新启动终端以生效。

将以下行添加到〜/ .vimrc

set clipboard=unnamed

现在,您可以在vim中复制该行yy 并将其粘贴到系统范围内。


小智 5

如果您还没有安装“xclip”...

sudo apt-get install xclip

Xclip 将数据放入“选择/突出显示”剪贴板中,您可以通过中键单击粘贴而不是“ctrl+v”

在 vim 中使用 ex 命令:

7w !xclip
Run Code Online (Sandbox Code Playgroud)

或者

1,7w !xclip
Run Code Online (Sandbox Code Playgroud)

或者

%w !xclip
Run Code Online (Sandbox Code Playgroud)

然后只需单击鼠标中键即可粘贴到任何其他应用程序中...


dvk*_*960 5

如果 vim 编译时支持剪贴板,那么您可以使用"*y含义:将视觉上选择的文本复制到寄存器中*(“*”用于剪贴板)

如果没有剪贴板支持,我想唯一的方法就是Ctrl+Insert在vim中直观地选择文本后使用。