在Vim中,如何设置在加载插件后运行的自动命令?

and*_*ett 5 vim vim-plugin vim-syntax-highlighting

我使用的一个Vim插件有一个错误,导致它设置了:syntax spell notoplevel。如果我:syntax spell toplevel在打开文件后运行命令,则可以轻松缓解该错误。但是,我很懒,我想将修复程序放入init.vim / .vimrc文件中,以便它可以自动运行。

我如何确保在有故障的插件代码后执行我的修复,以使我的设置不会被插件覆盖?

fph*_*ipe 7

创建一个文件,~/.vim/after/plugin/例如~/.vim/after/plugin/fix-spell.vim包含不带冒号即可运行的命令:

syntax spell toplevel
Run Code Online (Sandbox Code Playgroud)

中的文件~/.vim/after/plugin是在插件加载后获取的,因此提供了一个方便的钩子来更改可能由插件设置的设置。

  • 谢谢!对于使用 NeoVim 的其他人来说,`after/` 目录的默认位置是:`~/.config/nvim/after/`。 (2认同)

小智 5

或者,您可以将其设置为自动命令。您可以将自动命令绑定到大量事件(:help events对于所有事件)。VimEnter 是一个在插件加载后触发的事件,因此您可以在 vimrc 中使用如下行将命令设置为运行:

autocmd VimEnter * syntax spell toplevel
Run Code Online (Sandbox Code Playgroud)

这就是我用来应用插件主题的方法,该主题在插件加载后才可用。