VIM 为什么光标移动缓慢

lbuskeep 2019-06-30

关键词:vim Highlight_Matching_Pair slow

Mac上没感觉,但是同样的配置在树莓派上很糟糕,jk移动都非常缓慢,大概等接近一秒才能反应,这让人有点不能忍。

通过开启:set verbose=9追踪发现,每次jk移动都会执行一个call s:Highlight_Matching_Pair这样的函数,很明显是高亮对应的括号这样的功能。

同样,我们也可以通过:au CursorMoved查看鼠标移动时定义的调用。

VIM 为什么光标移动缓慢

查看后发现是来自matchparen.vim这个内置插件中的方法。
于是搜了一下,在这个vim脚本中发现关闭的方法:: NoMatchParen,就会关闭一切自动配对高亮了。如果再开启,就输入: DoMatchParen

参考:Disable Highlight Matched Parentheses in ViM : “let loaded_matchparen = 1” not working

有人建议开vim后自动关闭它:

" Disable parentheses matching depends on system. This way we should address all cases (?)
set noshowmatch
" NoMatchParen " This doesnt work as it belongs to a plugin, which is only loaded _after_ all files are.
" Trying disable MatchParen after loading all plugins
"
function! g:FuckThatMatchParen ()
    if exists(":NoMatchParen")
        :NoMatchParen
    endif
endfunction

augroup plugin_initialize
    autocmd!
    autocmd VimEnter * call FuckThatMatchParen()
augroup END

发现的确关闭了。但是好像jk的速度还是一样。# VIM 光标移动缓慢
vim Highlight_Matching_Pair slow

Mac上没感觉,但是同样的配置在树莓派上很糟糕,jk移动都非常缓慢,大概等接近一秒才能反应,这让人有点不能忍。

通过开启:set verbose=9追踪发现,每次jk移动都会执行一个call s:Highlight_Matching_Pair这样的函数,很明显是高亮对应的括号这样的功能。

同样,我们也可以通过:au CursorMoved查看鼠标移动时定义的调用。

VIM 为什么光标移动缓慢

查看后发现是来自matchparen.vim这个内置插件中的方法。
于是搜了一下,在这个vim脚本中发现关闭的方法:: NoMatchParen,就会关闭一切自动配对高亮了。如果再开启,就输入: DoMatchParen

参考:Disable Highlight Matched Parentheses in ViM : “let loaded_matchparen = 1” not working

有人建议开vim后自动关闭它:

" Disable parentheses matching depends on system. This way we should address all cases (?)
set noshowmatch
" NoMatchParen " This doesnt work as it belongs to a plugin, which is only loaded _after_ all files are.
" Trying disable MatchParen after loading all plugins
"
function! g:FuckThatMatchParen ()
    if exists(":NoMatchParen")
        :NoMatchParen
    endif
endfunction

augroup plugin_initialize
    autocmd!
    autocmd VimEnter * call FuckThatMatchParen()
augroup END

发现的确关闭了。但是好像jk的速度还是一样。

相关推荐

zycglboy / 0评论 2020-05-21