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

时间:2012-02-06 19:53:41

标签: vim

如何在vim中将选定的行复制到剪贴板。我知道如何为all text files做到这一点,但我想为选定的行做。 谢谢!

11 个答案:

答案 0 :(得分:90)

SHIFT V 可让您进入选择线模式。然后 * y 将当前选定的行拉到作为剪贴板的*寄存器。quite a few不同的寄存器,用于不同的目的。有关Windows和Linux上selection and drop registers*寄存器之间差异的详细信息,请参阅+部分。

答案 1 :(得分:67)

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

set clipboard=unnamedplus

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

答案 2 :(得分:10)

set guioptions+=a

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

答案 3 :(得分:8)

对于GVIM,点击v进入可视模式;选择文本并点击Ctrl+Insert将选择内容复制到全局剪贴板中。

在菜单中,您可以看到快捷键为"+y,即按住Shift键,然后按",然后按+,然后释放Shift并按y(与Shift + Insert相比很麻烦。

答案 4 :(得分:4)

如果您在MAC OSX中使用vim,不幸的是它附带了较旧的版本,并且不符合剪贴板选项。幸运的是,自制软件可以很容易地解决这个问题。

安装vim:

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

安装vim的vi:

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

重启终端才能生效。

将以下行附加到〜/ .vimrc

set clipboard=unnamed

现在您可以使用yy复制vim中的行 并在系统范围内粘贴它。

答案 5 :(得分:3)

如果你没有安装“xclip”......

sudo apt-get install xclip

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

在vim中使用ex命令:

7w !xclip

1,7w !xclip

%w !xclip

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

答案 6 :(得分:3)

如果使用剪贴板支持编译vim,那么您可以使用"*y含义:将视觉选择的文本放入注册*(' *'用于剪贴板)

如果没有剪贴板支持,我认为只有其他方法是在视觉上选择vim中的文本后使用Ctrl+Insert

答案 7 :(得分:1)

将以下代码添加到.vimrc

if has('clipboard')
    if has('unnamedplus')  " When possible use + register for copy-paste
        set clipboard=unnamed,unnamedplus
    else         " On mac and Windows, use * register for copy-paste
        set clipboard=unnamed
    endif
endif

答案 8 :(得分:1)

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

vim --version

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

+clipboard
+X11
+xterm_clipboard

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

-clipboard
-X11
-xterm_clipboard

要安装剪贴板支持:

apt-get install vim-gnome

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

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

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

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

     nnoremap <C-c> "+y
     vnoremap <C-c> "+y
     nnoremap <C-p> "+p
     vnoremap <C-p> "+p
    
  2. 保存并重新加载您的 .vimrc 以应用新的更改。

  3. 将光标定位到要复制的第一行。

  4. Shiftv 进入可视模式。

  5. 选择多行

  6. Ctrlc 将所选文本复制到系统剪贴板。

  7. 现在您可以将所选文本复制到浏览器、文本编辑器等。

  8. 如果要将系统剪贴板文本复制到 vim,请按 Ctrlp

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

答案 9 :(得分:1)

以下是可行的步骤:

  1. 在 vim 中打开源文件。
  2. shiftv
  3. 进入可视模式
  4. 通过移动向上/向下箭头键选择行数。
  5. 一旦要复制的文本突出显示,然后按以下键将其拉(复制)到 + 注册:"+y< /li>
  6. 现在在 vim 中打开目标文件。
  7. 按以下键将第 4 步中复制的文本粘贴到目标文件中:Ctrlv

答案 10 :(得分:0)

我已将以下行添加到我的.vimrc

vnoremap <F5> "+y<CR>

这使您可以通过按F5所选文本复制到剪贴板。您必须处于可视模式才能使其正常工作。