我正在寻找一种可以通过vim向文本文件添加其他命令的方法。例如,就像你可以做这样的事情:
# vim:syntax=foo
我想做类似的事情:
# vim:option call matchadd('Special', '\(REQUIRED\|OPTIONAL\)')
有任何想法吗?我知道我可以编写一个语法文件,但这不是我现在所追求的。
最佳答案
Vim 模式行语法(请参阅 :help modeline
)并非旨在指定命令
在文件打开期间执行。这正是自动命令的用途(请参阅:help autocommand
)。你想要做的应该是一个自动命令
类似以下。
autocmd FileType foo call matchadd('Special', '\(REQUIRED\|OPTIONAL\)')
或者
autocmd BufReadPost *.foo call matchadd('Special', '\(REQUIRED\|OPTIONAL\)')
(这里不是
*.foo
,你可以使用任何匹配路径或文件名的模式(或两者)目标文件。)
如果您正在设置的配置是某些文件或项目的本地配置,
并且您不想污染您的
.vimrc
与那些 autocmd
s,使用localvimrc插入。它允许您拥有一个“本地”
.vimrc
旁边的文件您的目标文件或项目文件夹。脚本存储在该
.lvimrc
是当您在“本地”
.vimrc
所在的同一目录中打开文件时执行是,或在其子目录中。上面显示的自动命令(或任何其他
配置)可以存储在
.lvimrc
文件本地项目。为了详情 localvimrc配置见插件主页。
关于Vim 文件内命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6366049/