Vimscript-B-站教程

参考 B 站

P1 expr 映射和 col 函数

一个例子:

1
noremap <expr>s col(".")==1?"$":"0"

这个 <expr> 是一个标记,而不是一个键位. 它表示将 s 映射为后面表达式的结果.

这里,col(".")==1?"$":"0" 表达式的结果为: 若当前所在列为 1, 则结果为 $; 若当前所在列为不为 1, 则结果为 0. 意思是 s 键会被映射到 $0 键.

P2 expr 映射进阶用法以及巧用事件变量v:count

getline() 函数的返回值是一个列表,可以这样使用:

1
let test = getline(".")[10:20]

表示获取这一行的第 11 个字符到第 21 个字符.

setreg()getreg() 来操作寄存器.

getchar() 是从键盘获取一个输入, 并返回其 ASCII 码.

P3 循环语句和一个超好用插件功能的简单实

printf() 函数,和 C 语言中几乎相同.

add() 函数,在列表末尾添加元素.

wildfire 插件功能实现

mode() 函数,返回当前的模式是什么.

P4 利用寄存器在insert模式下完成一些复杂脚

= 这个寄存器叫做表达式寄存器,在按下 <Ctrl+r>= 时,会要求输入表达式,然后 insert 的内容就是表达式的值.

P5 jobstart异步函数使用以及编译多文件工程

在编译之前先保存文件:

1
2
3
function! Compile()
exec 'w'
endfunction

expand() 函数可以根据修饰符返回不同的值.

jobstart() 函数为异步函数.

P6 实现代码块补全(snippt completion)和内容


Vimscript-B-站教程
http://example.com/2022/12/11/Vimscript-B-站教程/
作者
Jie
发布于
2022年12月11日
许可协议