个性化vim之映射(map,vmap)

map是一个映射命令,将常用的很长的命令映射到一个新的功能键上。


map的格式:
map <要映射键> <被映射的按键序列>,比如 map T :q!后,则在命令模式下按T并按回车,就会退出vim

vmap 和map类似,二者的区别在于前者用于所谓的Visual模式,后者用于通常的命令模式。 


映射
:map <F2> ggvG
解除映射
:unmap <F2>
清除所有映射
:mapclear
在光标后面插入当前日期和时间
:map <F2> a<C-R>=strftime("%c")<CR><Esc>


在命令模式下,可以像下面这样使用map。
:map <要映射的键> <被映射的键>


更常用的方法是将映射写入~/.vimrc文件,这样一次映射,永久使用。

vim ~/.vimrc


在文件中加入如下映射:

//设置文件头,其中<Enter> = <CR>
map <F12> ggO/*<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 <F<F9>> O/*<CR>*Copyright(c) 2005-2007 Shanghai LUCENT Telecommunication Corp.<CR>*<CR>*Authored by LUCENT ZJUJOE on:<Esc>:read !date <CR>kJ$a<CR>*<CR>*Funcion goal:<CR>*<CR>*Author:<CR>*<CR>*Input arguments:<CR>*<CR>*OutPut arguments:<CR>*/


让我们测试一下上面的映射, 新建一个cpp文件,输入如下代码:
  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4.   
  5. int max( int a, int b)  
  6. {  
  7.     return a > b ? a : b;  
  8. }  
  9. int main(int argc, char* argv[])  
  10. {  
  11.     return 0;  
  12. }  


按下F12源文件的顶部就会出现相应的声明了,在将光标移到 int max( int a, int b)这一行,按下F9,效果如下所示:
  1. /* 
  2. *Copyright(c) 2005-2007 Shanghai LUCENT Telecommunication Corp. 
  3. * 
  4. *Authored by LUCENT ZJUJOE on: 2012年 02月 25日 星期六 21:34:50 CST 
  5. * 
  6. * @desc: 
  7. * 
  8. * @history 
  9. */  
  10. #include <iostream>  
  11. using namespace std;  
  12.   
  13.   
  14. /* 
  15. *Copyright(c) 2005-2007 Shanghai LUCENT Telecommunication Corp. 
  16. * 
  17. *Authored by LUCENT ZJUJOE on: 2012年 02月 25日 星期六 21:34:54 CST 
  18. * 
  19. *Funcion goal: 
  20. * 
  21. *Author: 
  22. * 
  23. *Input arguments: 
  24. * 
  25. *OutPut arguments: 
  26. */  
  27. int max( int a, int b)  
  28. {  
  29.     return a > b ? a : b;  
  30. }  
  31. int main(int argc, char* argv[])  
  32. {  
  33.     return 0;  
  34. }  

注意事项:  <>是一种特殊的用法(参考资料:http://vimcdoc.sourceforge.net/doc/intro.html#%3C%3E)

例子中经常使用 <> 记法。有时这只是用来说明你需要输入什么,但经常它需要照本义键
入,例如在 ":map" 命令里。规则是:
 1.  任何可显示的字符都可以直接键入,反斜杠和 '<' 除外。
 2.  反斜杠用两个反斜杠表示 "\\",或者用 "<Bslash>"。
 3.  真正的 '<' 用 "\<" 或 "<lt>" 表示。只有在没有歧义的时候才可以直接用 '<'
     表示。
 4.  "<key>" 的意思是特殊键。其含义上面的表格都有介绍,下面是一些例子:
           <Esc>                Escape 键
           <C-G>                CTRL-G
           <Up>                 光标上移键
           <C-LeftMouse>        Control+鼠标左键点击
           <S-F11>              Shift+功能键 11
  <Space>  插入空格
  <Tab>  插入Tab

  <CR> 等于<Enter>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值