这两天花又不少时间学习Vim,网上相关的文章大多数能看懂的我都看了,easwy的Vim系列文章看了学多遍了,手册更是查了无数遍(有中文的,翻译的人真伟大!),越来越觉得这个编辑器真是强大,深陷其中不能自拔,要记的东西太多了,趁印象深刻,先下记下来,不时复习下。
Vim 的键位映射真是无所不能,一直以为插入模式中不够普通模式的快捷键多,普通模式中,按“o”能在光标下插入一行行,按“dd”删除一整行……,而在插入模 式中没有这些快捷键,很多快捷命令一直都是按“Esc”返回普通模式使用后再切换来,很麻烦,能看过键位映射后,研究一阵,大呼过瘾!于是把一系列自定义 键位映射写到“_vimrc”中,现在Vim用起来真他妈的爽!!!
1.
“Alt组合键不映射到菜单上
set winaltkeys=no”
在 键位映射中,Ctrl加字母是不分大小写的,Alt就分,这样能映射的键位选择就更多了。不过发现Alt+W等会跳到菜单上,即使设置了映射后还是那样, 十分不爽,反正菜单又不常用,于是决定把它关掉了,后来又发现有这个选项能使Alt组合键不映射到菜单上,Vim想得真周到,后来又发现Alt+大写(就 是同时按下Shift键)xp会切换输入法,又一不爽,于是在系统控制面板那里将它关掉。
2.
“编译程序
map
imap
在VC 里按一个键就能编译和运行,很方便,本来在Vim写好代码,然后用“:!”命令运行编译程序,后来用得多了,决定麻烦,于是设置了键位映射,先保存,然后 执行make。当然在ftpplugin里设置好mkaeprg。java.vim我就直接在Runtime files里的ftpplugin文件夹复制到vimfiles里就行了,c.vim就这么一句“set makeprg=gcc\ -o\ %:r.exe”
3.
“运行程序
“java.vim里的
map
imap
map
“c.vim里的
map
imap
map
因为java运行命令是“java 类名不包括后缀”,就用“%:r”去掉后缀名;而C则去掉后缀名后加上“.exe”
4.
“跳到下一个错误
map
imap
“跳到前一个错误
map
imap
“显示所有错误
map
imap
不用在切换到普通模式里输入查看错误命令了,真方便
5.
“全文查找替换
map
imap
在windows下一直习惯用“Ctil+H”打开查找对话框,这下好了,那几个固定字母不用重复打了
6.
“取消查找高亮
map
imap
查找过后总是查找内容高亮,这个映射能令它快速消失。
7.
“删除当前行并重写
imap
写代码时有时想整行删掉后重写,按住“del”或者用鼠标选择都是不够有效率,这样做最快捷。
8.
“删除到行尾
imap
插入模式有删除光标前到行首,但是没有删除到行尾,有时也学要用,映射一下。
9.
“删除光标处的单词
imap
“插入上次删除的单词
imap
有时想把单词换成另一个,像删除整行一样,移动好光标,然后按住“del”或者鼠标选择都是不够效率,这个映射一下子就把单词删掉。
10.
“删除光标处双引号之间的字符串
imap
如果光标在“”"”之间,这个映射就马上删掉双引号自己的内容并把光标用到双引号之间,方便重写。
11.
“开关tag窗口
map
imap
快速开关Taglist窗口。
12.
“在光标下插入新行
imap
就像普通模式下按“o”一样,这样不用把光标移动到行尾按回车了,按“Ctirl+o”,然后“o”也行,不过要多按一次键。
13.
“复制当前行
imap
“粘贴到当前行
imap
马上把光标所在行整行复制,粘贴,这个功能也经常用。
14.
“为选择行添加注释
smap
“删除选择行的注释
smap
有 时测试需要,要整段注释,先用鼠标选择好要注释的代码,这是时候在选择模式下,然后切换到可视模式,在可是模式下运行替换命令,作用范围就是选择段,查找 行首然后替换成“//”就行了,唯一不爽的是查找后全文行首高亮,于是又要取消高亮,屏幕就会“闪”一下。删除反过来就是。
15.
“映射光标控制
imap
imap
imap
imap
现在右手移动到光标键都嫌麻烦了
16.
“插入当前行第一个单词到下一行,用b寄存器
imap
编写Java时经常输入多行private,public时很有用,按一下就自动把当前行第一个字符查入到下一行。
17.
“插入光标出上一行单词,用i寄存器
imap
与上边那个类似,不过那光标上的单词复制下来,不太完善。