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)

Vimscript编程参考_w3cschool

Vimscript Tutorial - YouTube

变量

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

 

 

 

 

posted on 2022-02-09 10:41  风中狂笑  阅读(146)  评论(0编辑  收藏  举报

导航