Vim:是否可以在文件中为 :syntax sync fromstart 添加模式行?

Ale*_*lke 5 vim sync modeline syntax

我正在写一个很长的页面来记录编译器,我想如果 doxygen 突出显示会一直存在会很好。仅当我进行搜索以进一步查找文件时,它才会丢失跟踪,因为该评论中的行数非常大(现在为 1066)。

我发现您可以使用以下命令告诉系统从文件的开头进行同步:

:syntax sync fromstart
Run Code Online (Sandbox Code Playgroud)

这很好用。现在我想知道我是否可以在模式行信息中使用它(或者可能定义行数?),以便每次打开文件时它都能按原样工作。

我也注意到了 minlines,但这也是特定于语法的东西,看起来我不能只写:

vim: minlines=10000
Run Code Online (Sandbox Code Playgroud)

这被视为错误。

J.M*_*zen 3

我相信您正在寻找的是 Vimscript 中所谓的autocmdon a BufEnterevent。将以下行添加到.vimrc将为您打开的每个文件执行所需的命令:

autocmd BufEnter * :syntax sync fromstart

如果您只想打开某些文件扩展名,只需将*上面的内容替换为更具体的文件名模式,例如*.at或类似的。如果您仍然无法突出显示,您还可以在其他事件(例如进入插入模式)上触发自动命令。

您可以使用这些自动命令事件对做很多事情。如果您有兴趣更多地了解它们,我还建议您阅读本在线指南的几段内容。为了清楚起见,或者为了那些追随您的人,以下是本指南中的一个很好的视觉速记:

:autocmd BufNewFile * :write
         ^          ^ ^
         |          | |
         |          | The command to run.
         |          |
         |          A "pattern" to filter the event.
         |
         The "event" to watch for.
Run Code Online (Sandbox Code Playgroud)

上面是一个自动命令的示例,每当您vim newfile从命令行输入命令时,它都会自动保存文件。