在 vim 中转到新文件

chi*_*aku 3 vim

在 vim 中,我可以输入“gf”转到光标下的文件路径,但如果该文件不存在,则会收到错误消息。

有没有办法打开一个以光标下的单词命名的新文件?理想情况下,我希望这个缓冲区在新选项卡中打开。

编辑 noremap gf :tabe <cfile><CR>是一个很好的建议,但我希望还有一种方法来实现此映射并利用该suffixesadd设置。

FDi*_*off 7

来自的帮助:help gf

If you do want to edit a new file, use:
        :e <cfile>
To make gf always work like that:
        :map gf :e <cfile><CR>
Run Code Online (Sandbox Code Playgroud)

如果您想在新选项卡中打开它,您可以将其更改:e:tabe,这样您就会得到

noremap gf :tabe <cfile><CR>
Run Code Online (Sandbox Code Playgroud)

<cfile>被光标下方的路径替换。


以下是尝试正常操作的函数<c-w>gf(在新选项卡中打开光标下的文件,尊重'suffixesadd'并检查文件是否存在),如果失败,则仅在新选项卡中打开光标下的文件。

function Gf()
    try
        exec "normal! \<c-w>gf"
    catch /E447/
        tabedit <cfile>
    endtry
endfunction

noremap gf :call Gf()<CR>
Run Code Online (Sandbox Code Playgroud)