1.vimscript
vim是一个功能相当强大的编辑器。vimscript是一门用于定制Vim的脚本语言。vimscript其实就是
vim命令。例如在vim中,保存一个文件使用命令:write(或者缩写
:w)并回车确认。在这里其实用:符号进入vim命令行模式,然后使用vimscript的write命令来保存文件。
因此,vimscript中的命令可以在vim的命令行模式中执行,也可以编写到文件(例如vimrc)中形成vim脚本文件,然后由vim去执行。其中vim的插件编写就采用的是第二种。
2.vimscript的注释
在vimscript脚本文件中,使用左双引号"来表示注释。
3.vimscript常用的命令
set number "设置行号 set nonumer "取消行号
3.vimscript中的键盘映射命令map族
vim中已经有了很多的默认的键盘快捷键。例如*、#以及dd等等这些。然后我们可以使用map类的命令去设置一些自定义的键盘快捷键。map类的命令有好几个,如下(比如map命令可以设置Normal/Visual/Operator
Pending三种模式下的键盘快捷键,而imap可以设置Insert模式的键盘快捷键):
(1)设置键盘映射
使用:map<要映射的键> <被映射的键>的语法来设置一个键盘映射。
例A):map <F5> i{<Esc>ea}<Esc> #使用F5可以将光标所在的单词word加上花括号,其中i是进入insert模式,然后插入{,然后回到Normal,e表示光标移到单词word末尾,a进入Insert模式,然后插入},然后回到Normal模式。
例B):map <F10><Esc>:tabnew<CR> #使用F10在vim中打开一个新的标签页。
例C):imap <c-d> <Esc>ddi
#在Insert模式下,按下Ctrl+d会删除一行,删除一行后仍旧处在Insert模式下。
备注:其中<Esc>代表Esc退出键,<CR>代表回车键,<Space>代表空格键等等
(2)查看vim设置了哪些键盘快捷键
使用:map命令(不带任何参数)可以列出vim所有工作模式下的快捷键,输出结果中第一列表示的哪一个工作模式下的快捷键,如下表格:
同时使用:nmap/:vmap/:omap/:map!/:imap/:cmap命令(不带任何参数)可以查看对应vim工作模式下的快捷键。
(3)取消键盘快捷键
如果想要取消一个映射,可以使用命令:unmap
<键盘快捷键>,例如取消绑定到F10的快捷键:unmap<F10>。值得注意的是,必须为:unmap命令指定一个参数。如果未指定任何参数,那么系统将会报错,而不会取消所有的键盘映射。
同时,针对不同模式下的键盘映射,需要使用与其相对应的unmap命令。例如:使用:iunmap命令,取消插入模式下的键盘映射;而取消常规模式下的键盘映射,则需要使用:nunmap命令。
如果想要取消所有映射,可以使用:mapclear命令。请注意,这个命令将会移除所有用户定义和系统默认的键盘映射。
(4)关于键盘映射中leader介绍
我们是map来自定义一个键盘快捷键时,我们按下快捷键,就可以使用我们想要的功能。但是如果这个快捷键比如<Space>,如果我们确实要使用空格键输入一个空格怎么办。这个问题其实就是快捷键和按键的本来用途之间有冲突嘛。其实我们可以对我们的所有的快捷键设置一个前缀,比如-或,。例如:map-<F10><Esc>:tabnew<CR>这样设置,那么我们就可以使用F10干它自己该干的事。这种自己在配置键盘映射时,认为加入前缀比较麻烦。vimscript中支持用leader来为快捷键设置一个前缀。配置方法如下:
:letmapleader = "-" ''用let命令来是设置一个前缀 :nnoremap<leader>d dd ''当我们在vim中输入-d时就会删除一行了。
其他闲杂知识:
(1)在vim中执行:help可以打开vim的帮助文档。执行:helpcommand可以查看任意的command的帮助文档,例如可以执行:help
write看看write命令的帮助文档。
(2)在vim中执行:echo$MYVIMRC可以获取vimrc文件的路径和位置。
学习资料参考于:
http://learnvimscriptthehardway.onefloweroneworld.com/
http://feihu.me/blog/2014/intro-to-vim/
http://learnvimscriptthehardway.onefloweroneworld.com/chapters/06.html
http://yyq123.blogspot.com/2010/12/vim-map.html