编写-Vim-compiler-插件
compiler 命令
1 |
|
这个命令实际上就是加载一个 .vim
或 .lua
的文件.
其会查找的目录为:
$VIMRUNTIME/compiler
, 内置的可用 compiler plugins~/.config/nvim/compiler
, 用户自己编写的 compiler plugins, 若想覆盖其他 plugin, 可以放在~/.config/nvim/after/compiler
下
如, 有一个文件为 ~/.config/nvim/after/compiler/aaaa.vim
, 则可以用:
1 |
|
来加载这个文件.
编写需满足的机制
避免反复加载
在开头加上:
1 |
|
通过检查一个变量是否设置来确认是否加载.
如, 先运行了:
1 |
|
之后即使运行了另一句:
1 |
|
其仍然只加载了 perl.vim
或 perl.lua
. 而不会加载 gcc.vim
或 gcc.lua
定义 CompilerSet 命令并用其设置 makeprg 选项
在插件中加上:
1 |
|
这种形式的代码, 即定义 :CompilerSet
这个 user command.
这里的 makeprg
这个选项设置了 :make
要调用的 compiler.
比如:
1 |
|
则运行 :make
实际运行的命令如:
1 |
|
make 命令的执行细节
运行:
1 |
|
实际上等价于:
1 |
|
这里的 makeprg
, shellpipe
, errorfile
都是 Vim option. 其值可以通过:
1 |
|
来查看.
在设置 makeprg
时, %
会展开为当前文件名, %<
会展开为文件名 without extension. $*
会展开为所有参数 (也就是 [arguments]
.
编写-Vim-compiler-插件
http://example.com/2024/03/11/编写-Vim-compiler-插件/