你如何从Vim中的'gf'返回

我正在使用Vim for Windows以Unix模式安装。 感谢这个网站,我现在使用gf命令去光标下的文件。

我在寻找一个命令来:

  1. 返回到前一个文件(类似于ctags的Ctrl + T ),或者
  2. 重新映射gf以在新窗口中自动启动新文件。

我使用CtrlO

我经常使用Ctrl6

这很方便,因为它允许我快速在两个文件之间来回跳转。

您可能想要使用CTRL-W gf在新选项卡中打开该文件。

您可以像使用:bd一样closures新打开的文件,也可以使用CTRL-6和其他常用的方式更改缓冲区。

使用gf下载到一个文件中并使用:bf取回

只需使用:e#后跟Enter – 基本上说是编辑最后(最近)的文件。

Ctrl-Shift-6是一个。

:e#↲是另一个。

我不知道你的问题的第二部分的答案,但我可以帮助第1部分。使用

 :e# 

Vim维护一个正在编辑的文件(缓冲区)列表。 如果你input

 :buffers 

它会列出你正在编辑的所有文件。 该列表中带有%旁边的文件是当前文件。 #旁边的那个是备用文件。 :e#将在当前和备用文件之间切换。 我把F2映射到:e#,而不是input那么多,所以我可以轻松地在当前文件和备用文件之间进行切换。 我将这个命令映射到F2,将其添加到.vimrc中

 nmap `<F2> :e#<CR>` 

我得到了CTRL-W f的工作。
令人沮丧的是,我花了这么长时间完善这些命令的地图,才发现有内置版本。

请参阅:帮助备用文件 。

当你打开一个新文件(用gf或者:n或其他命令)时,旧文件将保留在缓冲区列表中。 您可以使用ls列出打开的文件

如果你想在vim中的缓冲区之间轻松导航,你可以创build一个像这样的映射:

 nmap <M-LEFT> :bN<cr> nmap <M-RIGHT> :bn<cr> 

现在,您可以使用Alt +向左箭头或Alt +向右箭头在缓冲区之间切换。

关于映射的完整文档在这里:

 :help map.txt 

我没有看过你的gf命令,但我想它使用:e:find命令。
假设这是正确的,只需将:e:findreplace为new (或:vnew作为垂直分割),然后文件将在新窗口中打开,而不是在同一个窗口中打开。

例如

 “在标题和cpp之间切换
 nmap,s:find%:t:r.cpp <CR>
 nmap,S:new%:t:r.cpp <CR>
 nmap,h:find%:t:rh <CR>
 nmap,H:new%:t:rh <CR>
 nmap,F:new = expand(“<cfile>:t”)<CR> <CR>
 nmap,d:new = expand(“<cfile>”)<CR> <CR>