有时我们可能会需要 vim 加载任何插件进行启动, vim 在这方面也提供了充分的自定义选项, 根据不同需要, 可以通过不同的方式达到目的
为了尽可能清楚详尽的剖析它们的区别, 我做了如下表格
vim_rtp
= /usr/share/vim/vimfiles, /usr/share/vim/vim82, /usr/share/vim/vimfiles/after
user_rtp
= /.vim,/.vim/after
vim_defaults_load
= /usr/share/vim/vim82/defaults.vim, /usr/share/vim/vim82/filetype.vim, /usr/share/vim/vim82/ftplugin.vim,
/usr/share/vim/vim82/indent.vim, /usr/share/vim/vim82/syntax/*/.vim
vim_user_load
=~/.vim/ftdetect/**/*.vim
method | &rtp | load vim plugin(such as netrw ) |
load user plugin |
---|---|---|---|
vim -u NONE |
vim_rtp + user_rtp
|
NONE | NONE |
vim -u DEFAULTS |
vim_rtp + user_rtp
|
vim_defaults_load |
vim_user_load |
vim -u NORC |
vim_rtp + user_rtp
|
all | all(no ~/.vimrc) |
vim --clean |
vim_rtp |
vim_defaults_load |
NONE |
vim --clean --cmd "set loadplugins" |
vim_rtp |
all | NONE |
HOME=/tmp/vim_tmp vim |
vim_rtp + user_rtp
|
all | allfile under /tmp/vim_tmp |
以上结果可以使用
echo &rtp
与:scriptnames
进行输出验证
单独测试某一插件
如果我们要测试一个插件的 bug, 那么最好就是使用一个干净的 vim 环境, 然后只加载此插件, 这时就可以使用 HOME=~/vim_test_home vim
这种方式了.
在这种方式下, 我们可以在 ~/vim_test_home
文件夹中只添加某一插件的相关配置, 不设任何自定义功能, 这样可以快速准确判断出该 bug 是否属于该插件
快速验证 vim 的一个默认功能
这时我们可以使用 vim --clean --cmd "set loadplugins"
. 为什么? 因为这样不仅可以不加载任何用户自定义的配置, 还能加载 vim 的默认插件 (比如 netrw
)
一些其他启动选项
-
vim [option] [files]
-
-N
: nocompatible mode -
-i NONE
: without reading yourviminfo
file
-
在 shell 环境中设置 alias
另外为了方便, 可以在 ~/.zshrc
中设置如下 alias
alias vn='vim -u NONE -U NONE -N -i NONE'
alias vc='vim --clean --cmd "set loadplugins"'
alias vt='HOME=~/vim_test_home vim'
load plugin at anytime
我们可以使用 runtime! plugin/**/*.vim
来加载runtimepath
下所有子文件夹plugin
下的 vim 文件