尝试创建创建新文件的vimscript函数
到目前为止,我掌握的代码如下:尝试创建创建新文件的vimscript函数,vim,Vim,到目前为止,我掌握的代码如下: command! -nargs=1 Nf call s:NewFile(<q-args>)<CR> function! s:NewFile(fp) :echom a:fp :e %:h/a:fp endfunction 命令-nargs=1 Nf调用s:NewFile() 作用s:新文件(fp) :echom a:fp :e%:h/a:fp 端功能 参数是正常传入的(我知道是因为echom语句) 当我运行诸如::Nf
command! -nargs=1 Nf call s:NewFile(<q-args>)<CR>
function! s:NewFile(fp)
:echom a:fp
:e %:h/a:fp
endfunction
命令-nargs=1 Nf调用s:NewFile()
作用s:新文件(fp)
:echom a:fp
:e%:h/a:fp
端功能
参数是正常传入的(我知道是因为echom
语句)
当我运行诸如::Nf test.py
之类的命令时,它会按其应该的方式回显test.py
,但在创建文件本身时,它会将a:fp
解释为文件名
如何将test.py
解释为文件名(或更复杂的文件名,如。/foo/bar/test.py
)?这样尝试:
command! -nargs=1 Nf call s:NewFile(<q-args>)
function! s:NewFile(fp)
echom a:fp
execute "e " . expand("%:h") . "/" . a:fp
endfunction
命令-nargs=1 Nf调用s:NewFile()
作用s:新文件(fp)
回声a:fp
执行“e”。展开(“%:h”)。"/" . a:fp
端功能
%:h
需要交给expand()
,以便从当前文件中提取路径。然后需要使用execute
,因为命令的各个部分必须连接在一起。然后执行这个字符串
另外,您不需要在命令末尾添加
命令代码>。这仅在从映射调用函数(或命令)时才需要
脚本中不需要前导冒号。可以这样尝试:
command! -nargs=1 Nf call s:NewFile(<q-args>)
function! s:NewFile(fp)
echom a:fp
execute "e " . expand("%:h") . "/" . a:fp
endfunction
命令-nargs=1 Nf调用s:NewFile()
作用s:新文件(fp)
回声a:fp
执行“e”。展开(“%:h”)。"/" . a:fp
端功能
%:h
需要交给expand()
,以便从当前文件中提取路径。然后需要使用execute
,因为命令的各个部分必须连接在一起。然后执行这个字符串
另外,您不需要在命令末尾添加
命令代码>。这仅在从映射调用函数(或命令)时才需要
脚本中不需要前导冒号。谢谢,伙计!我对vimscript还是新手,所以你的写作帮助我了解了更多。@StarLlama关于Vim的更多问题,你可能想加入。当然,我不知道这个问题,但从现在起将用于所有Vim问题,伙计!我对vimscript还是新手,所以您的写作帮助我了解了更多。@StarLlama有关Vim的更多问题,您可能想加入。当然,我不知道这个问题,但从现在起将用于所有Vim问题