VIM 裡使用 map/vmap 對映常用操作序列
VIM 裡使用 map/vmap 對映常用操作序列
前言:
在日常程式設計中,我們需要對現有的程式碼進行新增,刪除,更新以及對檔案頭,函式頭等進行標記,比如加入作者,版權資訊等。這些資訊需要以統一格式實現,所以需要自動化。
在source insight中,我們可以編輯巨集,然後釋出給開發組成員,大家使用同一版本。
在 VIM 中,我們可以通過在 .vimrc 中對映快捷鍵來實現。
本文假定您已經熟悉常用 vi 操作。後面的例項為我們日常程式設計中常用場景。
Map/vmap 介紹
Map 的格式為:map <要對映鍵> <被對映的按鍵序列>,比如 map T :q! 後,則在命令模式下按
Vmap 和 map 類似, 二者的區別在於前者用於所謂的 Visual 模式,後者用於通常的命令模式。
例項
以下例項:
將命令模式下 F2 對映為插入程式碼標記序列
將可視模式下 F3 對映為更新程式碼標記序列
將可視模式下 F4 對映為刪除程式碼標記序列
將命令模式下 F5 對映為插入檔案頭序列
將命令模式下 F6 對映為插入函式頭序列
。。。
map <F2> i/* Added by LUCENT ZJUJOE on:<Esc>:read !date <CR>kJ$a BEGIN*/<CR>/*<CR>Please add your
comment here<CR><Esc>a/<CR>#if 1<CR><CR>#endif<CR>/* Added by LUCENT ZJUJOE on:<Esc>:read !date <CR
>kJ$a END*/<CR><ESC>
vmap <F3> xi/* Modified by LUCENT ZJUJOE on:<CR><Esc>k:read !date <CR>k<CR>kJ$a BEGIN*/<CR>/*<CR>
Please add your comment here<CR><Esc>a/<CR>#if 1<CR><CR>#else<CR>#endif<CR>/* Modified by LUCENT SONGL
IXIN on:<Esc>:read !date <CR>kJ$a END<ESC>J$a/<CR><ESC>kkkpkk
vmap <F4> xi/* Deleted by LUCENT ZJUJOE on:<CR><Esc>k:read !date <CR>k<CR>kJ$a BEGIN*/<CR>/*<CR> Ple
ase add your comment here<CR><Esc>a/<CR>#if 0<CR>#endif<CR>/* Deleted by LUCENT ZJUJOE on:<Esc>:read
!date <CR>kJ$a END<ESC>J$a/<CR><ESC>kkkpkk
map <F5> i/*<CR> * Copyright(c) 2005-2007 Shanghai LUCENT Telecommunication Corp.<CR>*<CR>* Authored by
LUCENT ZJUJOE on:<Esc>:read !date <CR>kJ$a<CR>*<CR>* @desc:<CR>*<CR>* @history<CR>*/
map <F6> i/* Function authored by LUCENT ZJUJOE on:<Esc>:read !date <CR>kJ$a */<CR>/*<CR> * @desc:<C
R>* @param:<CR>* @return:<CR>*/<ESC>kkk$
map <F7> a/* Modified by LUCENT ZJUJOE on:<Esc>:read !date <CR>kJ$a BEGIN*/<CR><Esc>
map <F8> a/* Modified by LUCENT ZJUJOE on:<Esc>:read !date <CR>kJ$a END*/<CR><Esc>
map <F9> a/* Authored by LUCENT ZJUJOE on:<Esc>:read !date <CR>kJ$a*/<CR><Esc>