在我对 vimrc 进行更改后,vim 开始输出当前注册的所有自动命令的列表。它看起来像这样:
*:echo "Hello " . $USER . ", how may I help you?"
VimResized
*exe "normal! \<c-w>="
cline WinEnter
*set cursorline
nuline WinEnter
*if !exists("b:NERDTreeType") | setlocal number | endif
cline WinLeave
*set nocursorline
nuline WinLeave
*if !exists("b:NERDTreeType") | setlocal nonumber | endif
CursorMoved
*call FixScroll(5)
CursorMovedI
*call FixScroll(5)
Run Code Online (Sandbox Code Playgroud)
上面的例子是vim启动前的最后几行输出。我在 vimrc 中搜索了一条列出自动命令的语句(例如autocmd不带参数的 ) ,但没有结果。是否可以追溯到显示注册的自动命令的内容?
这是我的 vimrc 以防万一我错过了一些东西: https ://github.com/4Evergreen4/dotvim/blob/master/vimrc
Pet*_*ker 10
使用“不完整”:autocmd将查询 autocmd。例如:autocmd将查询所有 autocmd 并将:autocmd CursorHold查询所有使用CursorHold.
您可以解决这个问题,要么通过视觉找到畸形的部分:autocmd,要么您可以使用经过验证的方法禁用/注释掉您的一半,~/.vimrc看看错误是否在那一半中。继续二分查找,直到找到有问题的行。