:在函数中编辑不会打开参数中给出的路径

时间:2015-09-24 20:09:33

标签: vim

我在.vimrc:

function! s:Edit(path)
    vsplit a:path
endfunction

command! -nargs=1  -complete=file E call s:Edit(<q-args>)

问题是在新窗口中我有一个名为“a:path”的文件,而不是作为参数传递给E:command的文件。

虽然我的功能在我这样做时开始起作用:

exec "vsplit".a:path

为什么呢? 可以做得更好吗?

1 个答案:

答案 0 :(得分:2)

构建命令并使用:execute执行它。 e.g。

function! s:Edit(path)
    execute 'vsplit ' . a:path
endfunction

command! -nargs=1  -complete=file E call s:Edit(<q-args>)

如需更多帮助,请参阅:h :exe

有更好的方法吗?

真的取决于你的目标。我需要更多关于这应该做什么的信息。但是,您似乎想要为:vsplit创建别名。我建议您使用cmdalias.vim或至少使用以下内容:

command! -nargs=? -complete=file -bang E vsplit<bang> <args>

如果您正在尝试优化击键,那么以下映射也就足够了:

nnoremap <leader>v :vsp<space>

我个人习惯使用:vsplit而不用担心。