2012-02-06 148 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 
相關問題