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文件,输入如下代码:
#include <iostream>
using namespace std;
int max( int a, int b)
{
return a > b ? a : b;
}
int main(int argc, char* argv[])
{
return 0;
}
按下F12源文件的顶部就会出现相应的声明了,在将光标移到 int max( int a, int b)这一行,按下F9,效果如下所示:
/*
*Copyright(c) 2005-2007 Shanghai LUCENT Telecommunication Corp.
*
*Authored by LUCENT ZJUJOE on: 2012年 02月 25日 星期六 21:34:50 CST
*
* @desc:
*
* @history
*/
#include <iostream>
using namespace std;
/*
*Copyright(c) 2005-2007 Shanghai LUCENT Telecommunication Corp.
*
*Authored by LUCENT ZJUJOE on: 2012年 02月 25日 星期六 21:34:54 CST
*
*Funcion goal:
*
*Author:
*
*Input arguments:
*
*OutPut arguments:
*/
int max( int a, int b)
{
return a > b ? a : b;
}
int main(int argc, char* argv[])
{
return 0;
}
注意事项: <>是一种特殊的用法(参考资料: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>
参考资料:http://blog.csdn.net/zjujoe/article/details/2642461