您的位置:首页 > 其它

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

2015-05-19 22:53 295 查看
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: