在vim中打开文件后返回到上级目录浏览

186
当我在vim中打开目录浏览时,我可以通过将光标移动到文件名并按下Enter来打开文件。
现在,是否有命令返回到先前的目录浏览界面?
如果没有,是否有方法可以在不关闭目录浏览模式的情况下打开文件?

3
我不确定,但如果你想要非常方便的目录浏览功能,我建议你去看看NERDTree。 - Johan Kotlinski
7个回答

291

你可以使用:b#命令返回到上一个缓冲区。

如果你刚打开一个文件,则该命令将带你回到目录浏览。

更新:由于此答案被接受为正确答案,因此我想总结一下答案,包括@romainl的答案,这是我认为正确的答案。


3
应该是 :b#。我本想修复它,但单个字符的修改不被允许。 - echristopherson
如果我执行 vim <dirname>,然后导航到文件并按下 Enter,它不起作用;如果我打开 vim,然后执行 :e <dirname>,选择文件并按下 Enter,它就可以工作了。在这两种情况下,:buffers 只显示一个缓冲区。我不确定为什么会这样。 - mcmlxxxvi
根据vim维基@mcmlxxxvi的说法,b#仅适用于“先前编辑过的缓冲区”:http://vim.wikia.com/wiki/Easier_buffer_switching?action=edit&section=6 - ezdazuzena
3
很好的总结了其他正确答案,我希望更多人能这样做。 - LightMan
1
@veich 感谢您的评论,但我现在不会这样做,因为问题只涉及向后走。这不是维基页面,我只是为了清晰起见总结了其他问题。希望您能理解。 - ezdazuzena
显示剩余3条评论

103
您可以使用 Ctrl-O 快捷键返回到上一个缓冲区。

2
通常非常有用(例如,用于从“gf”返回导航),但是在浏览目录的情况下,它不会将我带回打开文件时所在的“行”。 :Rex <Enter>,这有点笨拙(5个按键与1个按键相比),可以实现。可能这是映射的候选项... - Tomasz Gandor

52

返回到 netrw 列表的正确命令是 :Rex[plore]。即使您已经在数十个文件之间跳转,也可以运行它。


1
在离开netrw列表后编辑文件时,使用:Rexplore返回与使用:Explore返回有什么不同吗? - Jasha
1
为了回答自己的问题,看起来 :Rexplore 总是会将您返回到之前浏览的相同 netrw 列表,而 :Explore 则会给出当前打开文件所在目录的列表。 - Jasha

39

:Ex会带您回到之前的编辑状态(并展示您所编辑但未保存的内容)。


1
我给每个答案都点了赞,它们都很有用。 - WestCoastProjects
很好,它比Ctrl-O更好一些,因为它会突出显示父目录(..),而不是顶部行(某些Netrw标题),但它仍然没有到我离开资源管理器的地方(打开的文件)。4个按键与1个按键相比,可以节省一些向下导航到我所在位置的j,但如果我期望进行大量导航,我仍然可能映射:Rex<Enter> - Tomasz Gandor

32
我使用Ctrl + ^在两个缓冲区之间切换。

1
这对我在从homebrew安装的OSX上使用vim 7.3有效。Ctrl-O似乎不起作用。 - Gardner Bickford
7
不需要按Shift键,只需要按Ctrl+6。 - mVChr
更准确地说,这个命令是“编辑另一个文件”:http://vimdoc.sourceforge.net/htmldoc/editing.html#CTRL-^ - ezdazuzena
太好了!虽然它只能在前后移动(就像“一级撤消”),但它确实返回到我所在的行!看来我并没有映射:Rex<CR>!(当然,只有当我不希望从嵌套导航(跳转到另一个文件等)中“返回”时才这样)。 - Tomasz Gandor
在 MacBook 上,它是 CTRL + SHIFT + 6,而不仅仅是 Ctrl + 6。 - aspiring1

27

我通常只使用:E。这很容易记住,可以让您返回到您打开的文件所在的目录列表。


2
我很惊讶这个回答得票太少了,它绝对是一个答案。 - TaoPR
2
不要感到惊讶 - 在我当前的 vim 7.4.x 版本上,:E 是含糊不清的,什么都不会发生。你需要至少输入 :E<CR> - Tomasz Gandor
1
如果没有定义以“E”开头的其他命令,则与:Ex:Explorer相同。例如,请参见https://dev59.com/72Yq5IYBdhLWcg3wkRi_#14367507 - ezdazuzena

4

我想使用跳转命令快捷键在Vim中执行“返回”或“前进”操作,使其像一个网页浏览器。

您可以搜索Vim的帮助以获取更多详细信息。

Vim :h 跳转命令

就像其他答案中提到的一样,Ctrl + O非常方便,希望Vim的帮助文件能让您学习更多命令,如Ctrl + I

Ctrl + I:向前跳转

Ctrl + O:向后跳转


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接