vimscript学习
要搞懂vim的插件,还是要懂vimscript
VimScript 五分钟入门(翻译) - 知乎 (zhihu.com)
Five Minute Vimscript (andrewscala.com)
Learn Vimscript in Y Minutes (learnxinyminutes.com)
Learn Vimscript the Hard Way (stevelosh.com)
变量
g:var - 全局 a:var - 函数参数 l:var - 函数局部变量 b:var - buffer 局部变量 w:var - window 局部变量 t:var - tab 局部变量 s:var - 当前脚本内可见的局部变量 v:var - Vim 预定义的内部变量
使用 function! 覆盖一个函数的定义
function! <Name>(arg1, arg2, etc) <function body> endfunction
参数使用 ... 这种不定长的参数形式时,a:1 表示 ... 部分的第一个参数,a:2 表示第二个,如此类推
function! g:Foobar(arg1, arg2, ...) let first_argument = a:arg1 let index = 1 let variable_arg_1 = a:{index} " same as a:1 return variable_arg_1 endfunction
如果你在函数声明的参数列表后添加一个 range 关键字,那函数就只会被调用一次,这时两个名为 `a:firstline` 和 `a:lastline` 的特殊变量可以用在该函数内部使用。
例如:强制创建一个名为 RangeSize 的函数,用来显示被调用时候的文本范围:
function! b:RangeSize() range echo a:lastline - a:firstline endfunction
tutorial:hello world
: hightlight
:h attr-list