到目前为止,我的代码是:
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
)?
答案 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>
广告。仅当您从映射调用函数(或命令)时才需要。
脚本中不需要前导冒号。