2011-12-05

GVim 取消 Ctrl + V 貼上快捷鍵定義

習慣 Vim 的凍仁連在 Windows 都會另外安裝 for Windows 的版本(以下簡稱 win32)並將它設為預設的純文字編輯器,不是說記事本(Notepad)不好,而是 Vim 真的很棒,可麻煩的是每次想要用 Ctrl + V 來垂直選取時都會變成貼上的動作..

win32 的垂直選取預設是使用 Ctrl + Q

翻了一下書才知道為了符合 Windows 的習慣,在 win32 的環境會多載入 mswin.vim 的設定檔。
jonny@win32:~$ gvim $HOME/_vimrc [Enter]
 3 source $VIMRUNTIME/mswin.vim
 4 behave mswin

也可以在 GVim 使用 :map 察看 Ctrl + V 是否被定義,可以看到在 win32 上已被定義。
no <C-V>           "+gP

可以看到 mswin.vim 在 35 行裡定義了萬惡的 Ctrl + V
jonny@win32:~$ gvim $VIMRUNTIME/mswin.vim [Enter]
 34 " CTRL-V and SHIFT-Insert are Paste
 35 map <C-V>         "+gP
 36 map <S-Insert>    "+gP

早就習慣 X Window System 的凍仁習慣用的是 xterm 模式以及自己維護的指令稿,故只需將 _vimrc 的第 3, 4 行註解起來就可以了。
jonny@win32:~$ gvim $HOME/_vimrc [Enter]
 3 " source $VIMRUNTIME/mswin.vim
 4 " behave mswin

想繼續使用 mswin 模式可以只移除 Ctrl + V 定義。
jonny@win32:~$ gvim $HOME/_vimrc [Enter]
unmap <C-V>

結束這一回合 :P

站內連結:
Vim 環境設定 - vimrc
vimrc → vimrc.d - Vim 多環境檔配置
GVim 取消 Ctrl + V 貼上快捷鍵定義

資料來源:
VIM: gvim 使用 Ctrl+V | Tsung's Blog
Make GViM more ViM on Windows « BlueCat is sleepy
O'Reilly - 精通 vi 與 vim 第七版

相關連結:
Quick yank and paste - Vim Tips Wiki