轉自:http://blog.sina.com.cn/s/blog_622d95080100ny94.html
在~/.vimrc中加入 set mouse=a 後,vim滑鼠右鍵變得不能複製了,解決辦法如下:
按住 shift 鍵,然後選擇,此時表示由 X 處理該選擇,copy 選項就 enable 了。如果放掉shift鍵,則由 vim處理該選擇。
原文:
新修改了~/.vimrc 檔案之後, 發現滑鼠右健無法複製文本。
發現在設定檔(~/.vimrc)中發現,有這樣一段話:
11 " In many terminal emulators the mouse worksjust fine, thus enable it.
12 if has('mouse')
13 set mouse=a
14 endif
在vim協助檔案中發現了如下的解釋:
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
Normally you would enable the mouse in all four modes with:
:set mouse=a
When the mouse is not enabled, the GUI will still use the mousefor
modeless selection. This doesn't move the textcursor.
所以設定檔中的set mouse=a啟動了所有模式, vim接管了滑鼠的控制。
其中涉及的背景知識是:
滑鼠事件有兩種處理方式,程式處理和 X 處理。
如果 X 負責處理,則是左鍵選擇,中間粘貼。
要讓 vim 中由 X 負責處理,有兩個方法:
1. 按住 shift 鍵,然後選擇,此時由 X 處理該選擇,copy 選項就 enable 了。如果放掉shift鍵,則由 vim處理該選擇。
2. 在 .vimrc 中設定 set mouse= (就是說清空),此時vim永遠不再幹涉滑鼠選擇,永遠把處理權交給X,這個時候滑鼠就處於無模式編輯狀態, 當然也能用滑鼠來切換vim裡面的tab視窗了,vim中的編輯游標也不會跟隨滑鼠了。