2012-02-06 102 views
52

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

+0

相关:http://stackoverflow.com/questions/7694633/copy-lines-using-visual-mode-in-vim,HTTP:// stackoverflow.com/questions/3961859/how-to-copy-to-clipboard-using-vim – eckes 2012-02-06 21:03:17

+0

请参阅http://vim.wikia.com/wiki/Cut/copy_and_paste_using_visual_selection – laike9m 2014-05-28 10:00:42

回答

69

SHIFTV使您进入选择线模式。然后*ý猛拉当前选择的行的*寄存器,其是剪贴板。有quite a few不同的寄存器,用于不同的目的,详见上selection and drop registers章节上*+寄存器上之间的差异Windows和Linux。

+0

在Linux中,+是全局剪贴板,*是选择剪贴板,而在Windows中都映射到全局剪贴板。 – Mohnish 2017-02-21 05:26:12

+1

任何方式在Mac终端中做到这一点?这不需要安装的东西... – 2017-12-14 19:48:13

10
set guioptions+=a 

会,... uhmm,总之,只要你选择/抽出的东西把它放在剪贴板以及(不Vim的,但窗口系统的全局键盘)。这样,你不必考虑将事情拖入特定的东西Al注册。

+1

//,这个建议适用于哪些操作系统和/或Vim版本? – 2017-03-28 19:47:19

56

如果你是在Linux上,并使用VIM版本74年3月7日或更高(也被安装在Ubuntu 11.10开始满足这个版本),你可以做

set clipboard=unnamedplus

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

+5

这只适用于安装'vim-gnome'包而不是'vim'的情况。 – 2012-11-27 11:29:04

+4

@ dan-klasson:这个选项需要一个用剪贴板支持编译的vim。你可以通过键入'vim --version |来检查是否是这种情况grep“+ xterm_clipboard”'。 – BenC 2013-11-28 16:07:33

+0

这似乎工作复制到其他非vim程序,但是当我在vim中进入插入模式并使用“shift + insert”从剪贴板粘贴时,只有前两行被粘贴...我安装了vim- GNOME;我错过了别的吗? – t2k32316 2014-05-12 22:09:15

3

如果你还没有安装“XCLIP” ......

sudo apt-get install xclip

XCLIP,将数据输入的“选择/高亮显示”剪贴板,你中单击粘贴,而不是“CTRL + v”

在vim使用ex命令:

7w !xclip 

1,7w !xclip 

%w !xclip 

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

6

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

从你可以看到快捷键是"+y即按住Shift键的菜单,然后按下",然后+然后松开Shift键并按y(繁琐相比,Shift + Insert键)。

3

如果VIM剪贴板支持编译,那么你可以使用"*y含义:视觉上选定的文本猛拉到寄存器*(“*”是剪贴板)

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

3

如果您在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 并粘贴系统范围。

+0

//,我刚刚在OSX 10.12.3上测试了这个,并且按照您在这里推荐的方法安装Vim和Vim的最新版本后,它可以正常工作。谢谢,@匿名。 – 2017-03-28 19:45:57

0

添加以下代码到你的.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 
相关问题