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

我正在寻找一个命令:

返回到前一个文件(类似 Ctrl+T为ctags),或 重新映射的女朋友 自动启动新文件 在一个新窗口。


Ctrl-Shift-6是一个。

:e#↲是另一个。


我使用Ctrl-O


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


参见:help alternate-file。


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

:e#

Vim维护它正在编辑的文件(缓冲区)列表。如果你输入

:buffers

它将列出您当前正在编辑的所有文件。列表中旁边有%的文件就是当前文件。旁边有#的是备用文件。:e#将在当前文件和备用文件之间切换。我没有输入那么多,而是将F2映射到:e#,这样我就可以轻松地在当前文件和备用文件之间切换。我将该命令添加到.vimrc中,将其映射到F2

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

为此,我经常使用Ctrl-6。

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


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

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

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

现在您可以使用Alt+←或Alt+→在缓冲区之间切换。

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

:help map.txt

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

如。 “在报头和cpp之间切换 nmap,s:find %:t: r.p <CR> nmap,S:new %:t: r.p <CR> nmap,h:find %:t:r.h<CR> nmap,H:new %:t:r.h<CR> nmap,F:new =expand("<cfile>:t")<CR><CR> nmap,d:new =expand("<cfile>")<CR><CR> . nmap,d:new =expand("<cfile>"


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

您可以像往常一样使用:bd关闭新打开的文件,或使用CTRL-6和其他常用的更改缓冲区的方法。


我得到CTRL-Wf工作。 我花了这么长时间完善这些命令的映射,却发现它们有内置的版本,这让我很沮丧。


使用gf进入文件,使用:bf返回文件