10

我编写了一个简单的函数来调用编辑命令,其路径后跟给定的文件名。

然而,它看起来像edit l:path调用文件命名"l:path"而不是l:path变量值的编辑。我想这是一个微不足道的问题,但很难获得在函数中调用编辑命令的搜索结果,而不是来自 vim 编辑器。

edit当我更改为时,以下代码显示 l:path 的正确值echon

command! -nargs=1 E call EditAtCurrentPath(<f-args>)

function! EditAtCurrentPath(filename)
    let l:path=expand('%:p:h').'/'.a:filename
    edit l:path
endfunction
4

1 回答 1

21

您必须使用:execute将变量传递给命令:

execute 'edit' l:path

中有一些很好的例子:help :execute

于 2013-08-13T07:43:45.510 回答