摘要:在进行vim配置,也就是编写vimrc文件的过程中,熟悉vim配置文件的语法是非常关键的,本文主要讲解vimrc的相关语法,为以后按照需要配置vimrc做准备。

1. 注释

写程序之前,第一件事情不是了解语法,而是知道如何写注释。

vimrc脚本的注释是使用引号(")作行注释。

2. 变量

(1) 标量变量

可以是数字或字符串,基本与perl相同。

命名方式为:作用域:变量名,常用的有如下几种:

b:name —— 只对当前buffer有效的变量

w:name —— 只对当前窗口有效的变量

g:name —— 全局变量

v:name —— vim预定义变量

a:name —— 函数的参变量

注意:引用标量变量的时候请包含作用域和冒号

(2) 一类有特殊含义的变量

命名方式:Fun Character(这个词请参看Programming Perl)加上变量名

共有三类:

$NAME —— 环境变量(一般变量名都是大写)

&name —— 选项(vim处理某些事情的时候的默认设置)

@r —— register(寄存器,不是汇编的EAX,EBX,看第2部分vim tips)

常见环境变量例子:$VIMRUNTIME —— vim运行路径

常见选项例子:&ic —— ignorecase

注:使用set命令可以改变选项设置,例如:

:set ignorecase

使用一个set命令可以看到当前所有的选项及其设置。

(3) 变量赋值

:let 变量名=值

注意:最前面的冒号不仅是为了表示这是一个冒号命令,而且是必须的。

释放变量::unlet! 变量名

(4) 运算符(和perl基本一样)

数学运算:+ - * / % .

逻辑运算:== != > >= < <= ?:

正则匹配运算符=~ !~

3. 控制结构

(1) if 条件

语句块

elseif 条件

语句块

else

语句块

endif

注意:条件表达式不需要小括号,语句块不需要大括号

(2) while 条件

语句块

[break/continue]

endwhile

4. 函数:

定义:

function 函数名(参数)

函数体

endfunc

调用:

在脚本语句中使用 call 函数名(参数)

在vim命令中使用 :call 函数名(参数)

注:在函数体中使用参数需要在参数变量名称前加上a:,例如参数名为

keyword,

则函数体中使用a:keyword来引用

注:常用系统函数 参见【附】。

5. 执行命令,键盘绑定,命令行命令和自动命令

(1) 执行命令

exec "命令" —— 用于在vim脚本中执行一系列vim命令

:!外部命令 —— 这是一个vim命令行命令,功能是调用外部程序

(2) 键盘绑定 :help map-overview

vim最大的特点在于可以把所有的操作能够用一个命令字符串表达出来,

因此这带来了编写脚本的最大的便利。键盘绑定就是一个例子,这个功能允许

把一个命令字符串绑定到一个按键/按键组合。

一般格式:映射命令 按键组合 命令组合

例子:nmap c ^i#<Esc>j

解释:映射normal模式下的按键c为:^i#<Esc>j,就是在该行开头加上#号

,然后下移一行

常用映射命令:

map :全模式映射

nmap :normal模式映射

vmap :visual模式映射

imap :insert模式映射

(3) 命令行命令

vim支持在启动的时候使用-c开关执行命令字符串,例如:

$ cat n 
#!/bin/sh 
vim -c "set filetype=$PERL" -c "s.$.#!/usr/bin/$PERL -w"r"r." -c 
":nohlsearch" $1

设置文件类型 写入#!/usr/bin/perl -w

取消匹配加亮

$ n myperlfile

(4) 自动命令

一般格式:autocmd 事件 文件类型 命令

例子:au BufNewFile,BufRead *.pl setf perl

解释:当事件 BufNewFile 和 BufRead 发生在 *.pl 文件上的时候,

执行命令:setf perl

6.其他

runtime/runtimepath
 
:ru[ntime][!] {file} ..                         Read Ex commands from {file} in each directory given                         by 'runtimepath'.  There is no error for non-existing                         files.  Example: >                                 :runtime syntax/c.vim

解析:无论我们在vimrc在看到别人使用了哪个命令,只需要输入:cmd,就能找到这个命令的帮助说明

vim的更多进阶使用,请移步:http://easwy.com/blog/archives/advanced-vim-skills-catalog/

<leader> 的作用

85"Set mapleader 86 let mapleader = "," 87 let g:mapleader = "," 88   89 "Fast saving 90 nmap <leader>w :w!<cr> 91 nmap <leader>f :find<cr><leader> 表示命令模式下的 "引导键" , 设置之后 连续按下 “,w” 就映射到了保存,并且不用按空格 更多配置方面的参考:http://www.douban.com/note/174206360/

7.常见键盘键的表述

:help keycodes

在进行键盘映射的时候,如果你想知道<cr> <up> <lt>等等分别表示什么意思,输入:help keycodes 即可。