2

我在 .vimrc 中启用了语法高亮,但这会使加载某些文件的时间过长。所以我需要禁用(或者,准确地说,不启用......启用它然后禁用不是解决方案)这些文件的语法突出显示。我试过

au BufNewFile,BufRead !*.inc syntax enable

但这使得从未应用语法突出显示。此处介绍的解决方案对我不起作用,因为我无法按文件类型进行区分。我尝试适应无济于事,这可能会或可能不会连接到“语法启用”所需的事件。

感谢您的任何指点!

4

3 回答 3

5

提到的解决方案指向正确的方向:为所有缓冲区定义一个自动命令,然后(而不是'filetype')通过以下方式与文件名匹配expand('<afile>')

au BufNewFile,BufRead * if expand('<afile>:e') !=? 'inc' | syntax enable | endif

在这里,我在*.inc条件中使用了您的扩展示例。如果您发现匹配很麻烦并且宁愿使用 autocmd 语法,您也可以使用中间缓冲区标志来执行此操作,因为 autocmds 按定义顺序执行:

au BufNewFile,BufRead *.inc let b:isOmitSyntax = 1
au BufNewFile,BufRead *     if ! exists('b:isOmitSyntax') | syntax enable | endif
于 2014-12-12T09:40:22.033 回答
4

如果您只想显示.c文件的语法。放

syntax off
autocmd! bufreadpost *.c syntax on

在你的vimrc.

您还可以映射一个键以启用语法(Ctrl+s在这种情况下)

nnoremap <C-S> :syntax on<CR>

在您的问题中,您只想禁用.inc文件的语法。像这样做:

syntax on
autocmd! bufreadpost *.inc set syntax=off
于 2014-12-12T09:31:35.763 回答
0

要禁用具有 .inc 扩展名的文件的语法突出显示,您基本上可以使用:

syntax on
au BufNewFile,BufRead *.inc setlocal syntax=OFF

要为多个扩展禁用它,例如对于 py:

au BufNewFile,BufRead *.{inc,py} setlocal syntax=OFF
于 2020-12-27T17:17:36.067 回答