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

如何在vim中将所选行复制到剪贴板,vim,Vim,如何在vim中将所选行复制到剪贴板。我知道如何做,但我想做的选择行。 谢谢 SHIFTV将您置于选择线路模式。然后“*y将当前选定的行拖动到剪贴板上的*寄存器。有不同的寄存器,用于不同的目的。有关Windows和Linux上*和+寄存器之间差异的详细信息,请参阅选择和删除寄存器部分 set guioptions+=a will,…嗯,简而言之,每当你选择/拖动某个东西时,也会将其放入剪贴板(不是Vim的,而是窗口系统的全局键盘)。这样你就不必考虑将东西拖动到一个特殊的寄存器中。如果你在Linu

如何在vim中将所选行复制到剪贴板。我知道如何做,但我想做的选择行。 谢谢

SHIFTV将您置于选择线路模式。然后“*y将当前选定的行拖动到剪贴板上的
*
寄存器。有不同的寄存器,用于不同的目的。有关Windows和Linux上
*
+
寄存器之间差异的详细信息,请参阅
选择和删除寄存器部分

set guioptions+=a

will,…嗯,简而言之,每当你选择/拖动某个东西时,也会将其放入剪贴板(不是Vim的,而是窗口系统的全局键盘)。这样你就不必考虑将东西拖动到一个特殊的寄存器中。

如果你在Linux上并且使用的是Vim 7.3.74或更高版本(Ubuntu11.10以后安装的版本满足这一点),您可以这样做

set clipboard=unnameplus

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

如果您没有

sudo-apt-get-install-xclip

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

在vim中,使用ex命令:

7w !xclip


然后点击鼠标中键粘贴到任何其他应用程序中…

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


从菜单中,您可以看到快捷键是
“+y
,即按住Shift键,然后按
,然后按
+
,然后松开Shift并按
y
(与Shift+Insert相比比较麻烦)。

如果vim是使用剪贴板支持编译的,则可以使用
”*y
意思是:将可视选择的文本拉入寄存器
*
(“*”表示剪贴板)


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

如果在MAC OSX中使用vim,不幸的是,它带有较旧的verion,不符合剪贴板选项。幸运的是,自制软件可以轻松解决这个问题

安装vim:

brew安装vim——带lua——带覆盖系统vim

安装vim的gui版本:

brew安装macvim——带lua——带覆盖系统vim

重新启动终端以使其生效

将以下行附加到~/.vimrc

设置剪贴板=未命名

现在,您可以使用
yy

并将其粘贴到系统范围。

将以下代码添加到
。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

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

vnoremap <F5> "+y<CR>
vnoremap“+y

这允许您通过按F5将所选文本复制到剪贴板。您必须处于可视模式才能工作。

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

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

+clipboard
+X11
+xterm_clipboard
-clipboard
-X11
-xterm_clipboard
如果未安装剪贴板支持,您将看到:

+clipboard
+X11
+xterm_clipboard
-clipboard
-X11
-xterm_clipboard
要安装剪贴板支持,请执行以下操作:

apt-get install vim-gnome
验证是否安装了剪贴板支持后,请执行以下操作:

  • 将光标定位到要复制的第一行
  • 按Shiftv进入可视模式
  • 压榨↓ 选择多行的步骤
  • 按“+y”将所选文本复制到系统剪贴板
  • 现在,您可以将所选文本复制到浏览器、文本编辑器等
  • 如果要将系统剪贴板文本复制到vim,请按“+p”
  • 如果您必须重复地从vim复制到系统剪贴板,则上述步骤可能会变得单调乏味,反之亦然。 您可以创建vim快捷方式,以便按Ctrlc键时,所选文本将复制到系统剪贴板。按Ctrlp键时,系统剪贴板文本将复制到vim。要创建快捷方式,请执行以下操作:

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

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

  • 将光标定位到要复制的第一行

  • 按Shiftv进入可视模式

  • 压榨↓ 选择多行的步骤

  • 按Ctrlc将所选文本复制到系统剪贴板

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

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


  • 注意:这适用于ubuntu系统。

    以下是一些可行的步骤:

  • vim中的开源文件
  • 按shiftv键进入视觉模式
  • 通过移动上/下箭头键选择行数
  • 待复制的文本高亮显示后,按以下键将其拖动(复制)到+寄存器:“+y”
  • 现在在vim中打开目标文件
  • 按:Ctrlv将步骤4中复制的文本粘贴到目标文件中

  • 相关:,请参阅,仅当我安装
    vim gnome
    包而不是
    vim
    @dan klasson时,此选项才有效:此选项需要使用剪贴板支持编译的vim。您可以通过键入
    vim--version | grep“+xterm_剪贴板”来检查是否存在这种情况
    。这似乎可以复制到其他非vim程序中,但当我在vim中进入插入模式并使用“shift+insert”从剪贴板粘贴时,只有前两行被粘贴…我安装了vim gnome;我是否遗漏了其他内容?如果你在macOS上,你可能需要使用
    剪贴板=未命名
    ()在Linux中,+是全局剪贴板,*是选择剪贴板,而在Windows中两者都映射到全局剪贴板。//,我刚刚在OSX 10.12.3上测试了这个,它是