在 vim with pathogen 中,如何检查插件是否会被加载?
In vim with pathogen, how can I check if a plugin will be loaded?
我在 vim 中使用 Pathogen 来管理我的插件,并且我的 vimrc 中有一个部分,我想 运行 仅当某个插件不可用时't installed/won 未加载。例如
if(dwm.vim not in use)
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
endif
在大多数情况下可能有效的两个选项是检查 dwm.vim 是否在 g:pathogen_disabled
中 and/or 检查目录 .vim/bundle/dwm.vim
是否存在。
然而,这些支票似乎有些脆弱。例如,如果我根本没有 dwm,检查 dwm.vim 是否被病原体禁用是不够的,并且如果出于某种原因 dwm.vim 位于某个非标准位置,但仍会进入 runtimepath
路径检查将不起作用。
pathogen 的全部意义在于让管理我的 runtimepath
更容易,因此一个优雅的解决方案是搜索此路径。但是搜索帮助,病原体来源,google,这里显示没有简单的方法可以做到这一点。我可以在 vim/pathogen 本地执行此操作吗?有没有插件可以帮我做这件事?我根本不应该这样做吗,因为检查失败的情况相当极端,只要我正确管理我的插件就不会发生?
在pathogen#infect()
之后添加:
if globpath(&runtimepath, 'dwm.vim', 1) !=# ''
" dwm.vim caught in the act
endif
大多数插件都有一个(重新)包含保护。通常命名为g:loaded_pluginname
。使用这个和之后的目录,你可以有条件地加载你的映射。
将以下内容放入 ~/.vim/after/plugin/dwm.vim
:
if !get(g:, 'loaded_dwm', 0)
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
endif
如需更多帮助,请参阅:
:h write-plugin
:h after-directory
:h get()
我在 vim 中使用 Pathogen 来管理我的插件,并且我的 vimrc 中有一个部分,我想 运行 仅当某个插件不可用时't installed/won 未加载。例如
if(dwm.vim not in use)
nnoremap <C-h> <C-w>h
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
endif
在大多数情况下可能有效的两个选项是检查 dwm.vim 是否在 g:pathogen_disabled
中 and/or 检查目录 .vim/bundle/dwm.vim
是否存在。
然而,这些支票似乎有些脆弱。例如,如果我根本没有 dwm,检查 dwm.vim 是否被病原体禁用是不够的,并且如果出于某种原因 dwm.vim 位于某个非标准位置,但仍会进入 runtimepath
路径检查将不起作用。
pathogen 的全部意义在于让管理我的 runtimepath
更容易,因此一个优雅的解决方案是搜索此路径。但是搜索帮助,病原体来源,google,这里显示没有简单的方法可以做到这一点。我可以在 vim/pathogen 本地执行此操作吗?有没有插件可以帮我做这件事?我根本不应该这样做吗,因为检查失败的情况相当极端,只要我正确管理我的插件就不会发生?
在pathogen#infect()
之后添加:
if globpath(&runtimepath, 'dwm.vim', 1) !=# ''
" dwm.vim caught in the act
endif
大多数插件都有一个(重新)包含保护。通常命名为g:loaded_pluginname
。使用这个和之后的目录,你可以有条件地加载你的映射。
将以下内容放入 ~/.vim/after/plugin/dwm.vim
:
if !get(g:, 'loaded_dwm', 0)
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
endif
如需更多帮助,请参阅:
:h write-plugin
:h after-directory
:h get()