vim 配置文件语法
摘要:在进行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
一般格式:autocmd 事件 文件类型 命令 例子:au BufNewFile,BufRead *.pl setf perl 解释:当事件 BufNewFile 和 BufRead 发生在 *.pl 文件上的时候, 执行命令:setf perl 6.其他
runtime/runtimepath
:ru[ntime][!] {file} .. 解析:无论我们在vimrc在看到别人使用了哪个命令,只需要输入:cmd,就能找到这个命令的帮助说明 vim的更多进阶使用,请移步:http://easwy.com/blog/archives/advanced-vim-skills-catalog/ <leader> 的作用 85"Set mapleader 7.常见键盘键的表述:help keycodes
在进行键盘映射的时候,如果你想知道<cr> <up> <lt>等等分别表示什么意思,输入:help keycodes 即可。
转自:http://blog.csdn.net/trochiluses/article/details/21776365 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- angularjs – 在Office 365的Angular JS App中使用Adal JS
- bootstrap table分页采用server方式,分页查询
- bash – 查找以.sh或.bin结尾的文件
- Shell $0, $#, $*, $@, $?, $$
- Couldn't register with the bootstrap server错误
- angularjs – 为什么我不能在控制器中访问这个ng-model变量
- 在Bootstrap开发框架中使用dataTable直接录入表格行数据的方
- bootstrap 分页
- 从零开始搭建口袋妖怪管理系统(2)-借助ngRoute实现详情页面
- escache访问webservice做缓存