vim'source'与'exe / execute'命令

时间:2016-02-25 01:36:39

标签: vim

做(在.vimrc中)之间有什么区别:

set runtimepath+=$HOME/.vim/conf
source ~/.vim/conf/hotkeys.vim

set runtimepath+=$HOME/.vim/conf
exe 'source' '~/.vim/conf/hotkeys.vim'

我的脚本(在本例中为hotkeys.vim)的内容是否与我应该使用的内容有关?

此外,exeexecexecute命令之间是否存在任何差异?

1 个答案:

答案 0 :(得分:3)

在您的示例中,使用sourceexecute之间没有区别。

source方法只是加载静态文件路径。

execute版本评估它给出的字符串,但最终所做的只是运行与第一个示例完全相同的source命令。

如果您没有提前知道文件名,并且必须计算它,或者从其他来源获取文件名,那么差异就会出现。然后你可以构造一个这样的源命令:

" A file name we obtained from user input or some other source
let g:file_we_want = 'foo'

" Calculate a file path as a string
let g:path_to_source = '~/' . g:file_we_want . '.vim'

" This is equivalent to:
"     source ~/foo.vim
execute 'source' g:path_to_source

exeexecexecute之间没有区别。他们都是同一个命令。 exeexec是缩写。