天天看點

vim 剪貼闆

vim很強大,時常都會有新的驚喜和發現。今天解決的是兩個關于剪貼闆的問題。

1、怎樣在X系統與vim進行拷貝粘貼操作(即vim與系統剪貼闆的交流)?

2、拷貝某段文本A,覆寫文本B(或者用d或x删除B)。之後再使用p進行粘貼,就變成了B的内容,如果希望繼續粘貼A,怎麼辦?

首先來點基礎,vim有多個剪貼闆,其中就包括了系統剪貼闆。使用指令:reg可以看到各個剪貼闆的内容。其中“”表示目前使用的剪貼闆,“0-9是曆史剪貼闆,“#就是系統剪貼闆了(你可以在系統裡拷貝一些東西,看是不是會出現在“#剪貼闆裡)。在vim中使用y可以把内容拷貝到“”号剪貼闆,繼續y會把新的東西放入“”,而原來“”的東西就會被壓入“0-9的各個曆史剪貼闆中。X11系統下還有一個“*的剪貼闆對應中鍵拷貝粘貼,windows不知道有沒有。

解決第一個問題:

“+y把選中内容拷貝到”+号剪貼闆,即系統剪貼闆
“+p把系統剪貼闆的内容粘貼到vim,這一個用shift+insert也可完成

解決第二個問題:

“0p可以把已經被擠到”0剪貼闆的内容A重新粘貼出來

嫌長的做一個map,映射到某個功能鍵或組合就友善了。

載自:http://www.wentrue.net/blog/?p=91

注意事項: 在vim中輸入:reg就會顯示個剪貼闆的内容,如果看不到"+ 這個剪貼闆,那還需要安裝vim增強功能

sudo apt-get install vim-gui-common

其實我個人認為作者講得不是很好,我研究vim剪貼闆就兩個目的:

1) 将vim中的資料複制到系統剪貼闆

2)粘帖上上次複制的内容( 我複制了一行,現在删除一行,想要粘帖之前複制而不是現在删除的這一行)

問題1:

先選中要複制的資料 "+y( 1.輸入“号 2. 輸入+ 号,3.輸入字母y, + 代表系統剪貼闆,意思就是将目前的内容定向複制到系統剪貼闆),要使用剛複制的内容,隻需要ctrl+v了,很友善。

順便提一下,将系統剪貼闆的内容複制到vim中,隻需要在normal模式下輸入"+p即可,你應該懂的。

問題2:

預設複制和粘帖都發生在"0 剪貼闆中,我們隻要将資料複制到其他剪貼闆中就不會被馬上替換掉了,使用方法:先選中要複制的内容,然後“2y(以2号剪貼闆為例)就複制到2号剪貼闆中了,粘帖的時候隻需要在normal模式輸入"2p即可。