用户应该把自定义 vim 函数放在哪里?

Cyk*_*ker 4 vim

有些函数是特定于文件类型的,我想知道组织这些函数的最佳实践是什么。我应该将它们定义ftplugin为脚本本地函数还是将所有内容都放入autoload

Ing*_*kat 8

这取决于。

首先,务实。如果它只是一个简短的函数,并且只在本地使用,我可以毫不犹豫地将它们直接放入我~/.vimrc~/.vim/ftplugin/*.vim. 后一个效率有点低,因为该函数会为每个打开的具有相同文件类型的文件重新定义。

您已经了解autoload 函数,当然,这是放置自定义函数的规范位置。教条主义的人会坚持(ft-)插件只包含配置、映射、自定义命令和:autocmd,并且所有功能都放在~/.vim/autoload/. 我建议对于任何更长的函数(或相互调用的函数集),或任何您打算发布供其他人重用的函数。

对于文件类型插件,我采用了将此类函数放入~/.vim/autoload/ft/{filetype}.vim, 或的约定~/.vim/autoload/ft/{filetype}/{submodule}.vim