你怎么从Vim的'gf'回来

时间:2008-09-25 14:20:34

标签: vim editor

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

我正在寻找一个命令:

  1. 返回上一个文件(类似 to Ctrl + T for ctags),或
  2. 重新映射gf 自动启动新文件 在新窗口中。

11 个答案:

答案 0 :(得分:273)

我使用 Ctrl - O

答案 1 :(得分:66)

我经常使用 Ctrl - 6

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

答案 2 :(得分:42)

您可能希望使用CTRL-W gf在新标签页中打开文件。

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

答案 3 :(得分:11)

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

答案 4 :(得分:11)

使用gf下载到文件中并使用:bf返回

答案 5 :(得分:9)

Ctrl-Shift-6就是一个。

:e#↲是另一个。

答案 6 :(得分:5)

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

:e#

Vim维护着一个正在编辑的文件(缓冲区)列表。如果您输入

:buffers

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

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

答案 7 :(得分:4)

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

答案 8 :(得分:2)

请参阅:help alternate-file

答案 9 :(得分:2)

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

列出打开的文件

如果要在vim中的缓冲区之间轻松导航,可以创建如下映射:

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

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

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

:help map.txt

答案 10 :(得分:0)

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

e.g。

"Switch between header and cpp
nmap ,s :find %:t:r.cpp<CR>
nmap ,S :new %:t:r.cpp<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>