1. 程式人生 > >VIM 裡使用 map/vmap 對映常用操作序列

VIM 裡使用 map/vmap 對映常用操作序列

VIM 裡使用 map/vmap 對映常用操作序列

前言:

在日常程式設計中,我們需要對現有的程式碼進行新增,刪除,更新以及對檔案頭,函式頭等進行標記,比如加入作者,版權資訊等。這些資訊需要以統一格式實現,所以需要自動化。

source insight中,我們可以編輯巨集,然後釋出給開發組成員,大家使用同一版本。

VIM 中,我們可以通過在 .vimrc 中對映快捷鍵來實現。

本文假定您已經熟悉常用 vi 操作。後面的例項為我們日常程式設計中常用場景。

Map/vmap 介紹

Map 的格式為:map <要對映鍵> <被對映的按鍵序列>,比如 map T :q! 後,則在命令模式下按

T並按回車, 就會推出vim.

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>