在Vim中启用基于每个缓冲区的语法突出显示

xtfmy6hx  于 2022-11-11  发布在  其他
关注(0)|答案(4)|浏览(195)

我目前必须编辑一些非常大的XML文件,这会使语法突出显示的速度减慢到绝对无法使用的程度, -例如,在搜索操作后更新屏幕需要几秒钟。
当禁用语法突出显示(:syn off)时,同样的操作会立即发生。不幸的是,禁用语法突出显示似乎是全局发生的,所以所有其他文件现在也都禁用了它。
那么:有没有办法只对给定的缓冲区禁用语法突出显示?

kwvwclae

kwvwclae1#

你可以设置:syntax manual,然后在你喜欢的缓冲区中用set syntax=ON使能它。

zsbz8rwp

zsbz8rwp2#

回答我自己的问题:一个简单的破解方法是将文件的语法强制为vim不知道如何突出显示的内容::set syntax=unknown
然而,这似乎有点古怪--也许还有其他的解决方案?

gzszwxb4

gzszwxb43#

对于大文件编辑,我通常使用Chip's LargeFile plugin。它禁用语法突出显示,撤消数据库和其他功能,给大文件给予麻烦。

lsmd5eda

lsmd5eda4#

老主题,但回答可能对别人有帮助。)
这是我最后一次在缓冲区中切换ON/OFF语法时使用的方法。更改是在缓冲区本地进行的。对我来说工作正常。

nnoremap <leader><leader> :call MyLocalSyntaxOnOff()<cr>

function! MyLocalSyntaxOnOff ()
    if getbufvar("%", "&syntax") ==# "OFF"
        setl syntax=ON
        redraw | echo 'Syntax: ON - <space><space> to change.'
    else
        setl syntax=OFF
        redraw | echo 'Syntax: OFF - <space><space> to change.'
    endif
endfunction

只要把它加到你的.vimrc上,你就应该没事了。建议:设置你的领导者键(我的一个是<space>目前),如果没有-标准的一个应该是斜线(或反斜线(?))键-\
顺祝商祺。

相关问题