动态加载Vim脚本
在我的dotfiles配置中,我试图构建它,以便能够自动加载某个文件夹中的*.vim文件。为此,我将以下代码段添加到我的动态加载Vim脚本,vim,Vim,在我的dotfiles配置中,我试图构建它,以便能够自动加载某个文件夹中的*.vim文件。为此,我将以下代码段添加到我的.vimrc文件中: function PluginConfigs () let vimscripts = split(globpath("$ZSH/vim", '*.vim'), '\n') for i in vimscripts echom i source i endfor endfunction call Plug
.vimrc
文件中:
function PluginConfigs ()
let vimscripts = split(globpath("$ZSH/vim", '*.vim'), '\n')
for i in vimscripts
echom i
source i
endfor
endfunction
call PluginConfigs()
当我现在打开Vim时,我得到以下输出:
/home/davejlong/.dotfiles/vim/dispatch.vim
Error detected while processing function PluginConfigs:
line 4:
E484: Can't open file i
/home/davejlong/.dotfiles/vim/leaders.vim
E484: Can't open file i
/home/davejlong/.dotfiles/vim/matchtagalways.vim
E484: Can't open file i
/home/davejlong/.dotfiles/vim/neocomplete.vim
E484: Can't open file i
Press ENTER or type command to continue
我不确定为什么我不能在
source
命令中使用变量I
。当然,我在发布问题后就找到了答案。我将功能更改为此,它可以工作:
function PluginConfigs ()
let vimscripts = split(globpath("$ZSH/vim", '*.vim'), '\n')
for i in vimscripts
exec ":source " . i
endfor
endfunction
call PluginConfigs()
您似乎需要使用
exec
从变量中获取文件源。您可能需要签出:h:runtime
来获取文件源。您可能还想查看在目录之后使用,但这并不适用于所有情况。有关~/.vim
文件结构的更多信息,请参见:h vimfiles
。您需要:execute
,只要您想运行包含一些串联文本的命令。