我在.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
为什么呢? 可以做得更好吗?
答案 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
而不用担心。