vim 拷貝方面發現的好文章

VIM中鼠標右鍵無法複製的解決方法:
這個問題的原因應該是你的vim修改了配置文件,增加了下面這一句
set mouse=a;
vi的三種模式:命令模式,插入模式,可視模式.鼠標可以啓動於各種模式中:
The mouse can be enabled for different modes:
n Normal mode
v Visual mode
i Insert mode
c Command-line mode
h all previous modes when editing a help file
a all previous modes
r for |hit-enter| and |more-prompt| prompt

[color=blue]加了這句後,在vim中就開啓了在所有模式下的鼠標右鍵功能,這樣就屏蔽了鼠標右鍵的複製功能
我在網上看了大部分人的解決辦法都是註釋掉set mouse=a這句或者將其值賦爲空,這樣確實可以用右鍵複製了,但是下次vim寫代碼時就沒有鼠標點哪光標到哪的功能了。所以這個方法還不是一個很好的解決方法。
其實在vim裏面可以通過其自帶的寄存器(通俗點就是剪切板)功能來實現我們需要的複製功能。
我們可以在vim下面選中一段文字(需退出編輯模式) 然後輸入y,這樣就把當前選中的文字複製到vim的臨時寄存器(*號寄存器)中了,再在我們需要粘貼的地方輸入“*p就可以將臨時寄存器中的內容粘貼進來(也可以直接按鼠標中鍵)。我們可以通過:reg命令查看寄存器中的內容。
補充:
如果輸入”1y 就是將選中的內容複製到1號寄存器,”2y就是將內容複製到2號寄存器,粘貼“寄存器號p,例如:”1p,“2p;其中有兩個寄存器比較特殊,一個是*,另一個是+,*也就是我們上面說的寄存器,在選中文字的情況下,直接按y,默認複製到*寄存器。
下面我們來說這個+寄存器,當我們需要將vim裏面的內容複製到別的地方時,假如是word中,就不能通過”1p將寄存器複製到word下面,因爲word沒有1號寄存器這種東西,它只是在vim下存在,這時我們就需要用到+寄存器了,因爲+寄存器是和系統剪貼板相通的,也就是複製到#號剪貼板的內容也會同時存在與系統剪切板內,這下,我們可以通過“+y現將內容複製到系統剪切板上,然後直接在word裏面右鍵粘貼或者ctrl+v就行了。[/color]

Vim快速選中、刪除、複製引號或括號中的內容:

最近剛剛發現了一些Vim中,快速對引號或括號等標點內的內容進行選中、刪除、複製操作的超級技巧,感覺非常實用。可以極大的提高編輯效率。

以下命令可以對標點內的內容進行操作。
ci'、ci"、ci(、ci[、ci{、ci< - 分別更改這些配對標點符號中的文本內容
di'、di"、di(或dib、di[、di{或diB、di< - 分別刪除這些配對標點符號中的文本內容
yi'、yi"、yi(、yi[、yi{、yi< - 分別複製這些配對標點符號中的文本內容
vi'、vi"、vi(、vi[、vi{、vi< - 分別選中這些配對標點符號中的文本內容

另外如果把上面的i改成a可以連配對標點一起操作。

舉個例子:

比如要操作的文本如下:

111"222"333

將光標移到"222"的任何一個字符處輸入命令 di" ,文本會變成: 111""333

若輸入命令 da" ,文本會變成: 111333

特別是對於用Vim編碼的同學來說,真是非常強勁的技巧
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章