Phi*_*ank 2 vim syntax-highlighting autocmd
我在.vimrc中启用了语法高亮,但这使得加载某些文件的时间过长.因此,我需要禁用(或者,确切地说,不启用...启用它,然后禁用不是解决方案)语法突出显示这些文件.我试过了
au BufNewFile,BufRead !*.inc syntax enable
Run Code Online (Sandbox Code Playgroud)
但这使得没有应用语法高亮.这里提出的解决方案对我不起作用,因为我无法通过文件类型进行区分.我尝试适应无效,可能会或可能不会连接到"语法启用"所需的事件.
感谢您的任何指示!
如果要仅显示.c文件的语法.放
syntax off
autocmd! bufreadpost *.c syntax on
Run Code Online (Sandbox Code Playgroud)
在你的vimrc.
您还可以映射用于启用语法的键(Ctrl+s在本例中)
nnoremap <C-S> :syntax on<CR>
Run Code Online (Sandbox Code Playgroud)
在您的问题中,您想要仅为.inc文件禁用语法.像这样做:
syntax on
autocmd! bufreadpost *.inc set syntax=off
Run Code Online (Sandbox Code Playgroud)
提到的解决方案指向正确的方向:为所有缓冲区定义一个 autocmd ,然后(而不是'filetype')通过expand('<afile>')以下方式与文件名匹配:
au BufNewFile,BufRead * if expand('<afile>:e') !=? 'inc' | syntax enable | endif
Run Code Online (Sandbox Code Playgroud)
在这里,我在条件中使用了您的*.inc扩展示例。如果您发现匹配很麻烦并且宁愿使用 autocmd 语法,您也可以使用中间缓冲区标志来做到这一点,使用 autocmds 按定义顺序执行的事实:
au BufNewFile,BufRead *.inc let b:isOmitSyntax = 1
au BufNewFile,BufRead * if ! exists('b:isOmitSyntax') | syntax enable | endif
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1221 次 |
| 最近记录: |