在日常编程中,我们需要对现有的代码进行添加,删除,更新以及对文件头,函数头等进行标记,比如加入作者,版权信息等。这些信息需要以统一格式实现,所以需要自动化。
在source insight中,我们可以编辑宏,然后发布给开发组成员,大家使用同一版本。
在 VIM 中,我们可以通过在 .vimrc 中映射快捷键来实现。
本文假定您已经熟悉常用 vi 操作。后面的实例为我们日常编程中常用场景。
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>