尝试创建可创建新文件的vimscript函数

时间:2019-01-24 19:43:06

标签: vim

到目前为止,我的代码是:

command! -nargs=1 Nf call s:NewFile(<q-args>)<CR>

function! s:NewFile(fp)
    :echom a:fp
    :e %:h/a:fp
endfunction

通常会传入参数(我知道是因为echom语句)。

当我运行诸如:Nf test.py之类的命令时,它将回显test.py,但是在创建文件本身时,它将a:fp解释为文件名。

如何将test.py解释为文件名(或更复杂的文件名,例如../foo/bar/test.py)?

1 个答案:

答案 0 :(得分:3)

像这样尝试:

for /f "skip=3 delims=\" %%A in ('net view ^| findstr /v /C:"The command completed successfully"') do Echo %%A >> ComputerList.txt

command! -nargs=1 Nf call s:NewFile(<q-args>) function! s:NewFile(fp) echom a:fp execute "e " . expand("%:h") . "/" . a:fp endfunction 需要移交给%:h,以便从当前文件中提取路径。然后,您需要使用expand(),因为命令的各个部分必须串联在一起。然后执行该字符串。

此外,您无需在execute的末尾插入<CR>广告。仅当您从映射调用函数(或命令)时才需要。

脚本中不需要前导冒号。