Vim插件中变量拼接路径后,:e命令无法正确打开文件怎么办?
解决Vimscript中用变量拼接路径打开文件的问题
你遇到的问题是Vim把:e后面的变量表达式直接当成了文件名,没有解析变量的值。要让Vim先计算出完整路径再执行打开命令,需要用execute命令来实现。
修改后的函数代码如下:
function! testplugin#template(...) execute 'e' g:configpath . a:1 . g:config endfunction
补充说明:
execute会先计算后面的变量拼接表达式,生成完整的路径字符串,再执行对应的e(即edit)命令。- 用字符串格式化写法会更易读:
function! testplugin#template(...) execute printf('e %s%s%s', g:configpath, a:1, g:config) endfunction - 另外注意你的
g:configpath路径写重复了,~已经代表用户主目录,应该改成'~/.vim/bundle/testplugin/templates/',避免出现无效路径。
内容的提问来源于stack exchange,提问作者0x01_PH
相关产品推荐
相关产品推荐

