我在 .vimrc 中启用了语法高亮,但这会使加载某些文件的时间过长。所以我需要禁用(或者,准确地说,不启用......启用它然后禁用不是解决方案)这些文件的语法突出显示。我试过
au BufNewFile,BufRead !*.inc syntax enable
但这使得从未应用语法突出显示。此处介绍的解决方案对我不起作用,因为我无法按文件类型进行区分。我尝试适应无济于事,这可能会或可能不会连接到“语法启用”所需的事件。
感谢您的任何指点!
我在 .vimrc 中启用了语法高亮,但这会使加载某些文件的时间过长。所以我需要禁用(或者,准确地说,不启用......启用它然后禁用不是解决方案)这些文件的语法突出显示。我试过
au BufNewFile,BufRead !*.inc syntax enable
但这使得从未应用语法突出显示。此处介绍的解决方案对我不起作用,因为我无法按文件类型进行区分。我尝试适应无济于事,这可能会或可能不会连接到“语法启用”所需的事件。
感谢您的任何指点!
提到的解决方案指向正确的方向:为所有缓冲区定义一个自动命令,然后(而不是'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
如果您只想显示.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
要禁用具有 .inc 扩展名的文件的语法突出显示,您基本上可以使用:
syntax on
au BufNewFile,BufRead *.inc setlocal syntax=OFF
要为多个扩展禁用它,例如对于 py:
au BufNewFile,BufRead *.{inc,py} setlocal syntax=OFF