我写了一个vim插件来学习一些vimscript。我在/autoload/plugin.vim
中设置变量如下:
let g:configpath = '~/home/username/.vim/bundle/testplugin/templates/'
let g:config = '/config.h'
然后我想在一个函数中使用它:
function! testplugin#template(...)
:e g:configpath . a:1 . g:config
endfunction
目标是打开此路径后面的文件。a:1 是用户给定的输入,因为子文件夹可由用户选择。
当我使用echo g:configpath . a:1 . g:config
时,正确的路径将被打印到Vim,但当我使用:e
打开文件时,Vim打开一个新文件,其名称为:
"g:configpath . a:1 . g:config" [New]
如何打开此路径后面的模板文件?
1条答案
按热度按时间owfi6suc1#
:help :echo
和:help :edit_f
处理参数的方式不同。前者需要一个表达式,该表达式在运行时进行计算以生成将被回显的文本:
后者也做一些评估,但仅限于扩展环境变量和
:help cmdline-special
下记录的项目。最值得注意的是,它不能进行连接:如果您想以编程方式构建文件名,您有两个选择。
:help :execute
:顺便说一句,自动加载的脚本似乎不是定义全局选项的正确位置。它们通常在
plugin/foo.vim
中定义。