10

我需要在 Vim 的两个文件之间来回跳转。

我可以手动执行此操作,:e file1.txt然后:e file2.txt. 有没有直接跳转到之前打开的文件的快捷方式?

注意:我不想在拆分窗口或多个选项卡中打开这两个文件。

我正在寻找类似的东西[ctrl + o],只有跳转应该是前一个文件,而不是同一个文件中的前一个位置

感谢您的任何提示

4

7 回答 7

15

使用<C-^><C-6>

来自:h ctrl-^

Edit the alternate file. Mostly the alternate file is
the previously edited file. This is a quick way to
toggle between two files. It is equivalent to ":e #",
except that it also works when there is no file name.

If the 'autowrite' or 'autowriteall' option is on and
the buffer was changed, write it.
Mostly the ^ character is positioned on the 6 key,
pressing CTRL and 6 then gets you what we call CTRL-^.
But on some non-US keyboards CTRL-^ is produced in
another way.
于 2013-06-11T10:40:36.210 回答
6

我不确定我是否理解正确,但只打开两个文件可能buffer next :bn就足够了吗?

于 2013-06-11T10:35:46.633 回答
5

要真正在两个文件之间切换,请使用:b#: 当您打开两个以上的文件时,这会更方便。

假设您已加载file1, file2,并希望在和file3之间切换:23

  • :b file2打开文件2
  • :b file3打开文件3
  • 从现在开始,:b#从 3 切换到 2,反之亦然。

在这种情况下,:bn将循环遍历 1, 2, 3, 1, 2, 3, ...

于 2013-06-11T11:34:17.497 回答
4

这是文件和缓冲区管理的主题。您可以查看相关文档。我想出了一些你可能感兴趣的命令:

CTRL+^:转到同一窗口中最后编辑的文件。

gf:如果可以找到光标下的链接,则转到文件。

:bn :bp: 转到下一个或上一个缓冲区。

:n :N: 转到下一个或上一个 arg 文件。

还有一个叫unimpaired的插件,让你更开心!

如果您想根据需要跳转到文件:

:b partial_word然后按Tab,您将获得自动完成。

:ls然后:b a_number去那个缓冲区。

一些像bufexplorer、nerdtree这样的插件非常有用。但是在这种情况下,您可以考虑使用 CtrlP,它可以非常快速地搜索所有文件!

于 2013-06-11T10:53:45.877 回答
2

如果我的问题是正确的,那就是:e#

于 2013-06-11T11:00:56.830 回答
2

我不知道更好的解决方案,但一种可能的解决方案是按照以下步骤操作:

:e file1.txt
:e file2.txt
: <commands commands>
:e <UP_ARROW> / <DOWN_ARROW> to switch between the files

这可能不是您所要求的,但利用了自动完成功能。

于 2013-06-11T10:31:22.080 回答
0

我使用 :bn 转到下一个打开的文件,但由于我很懒,我重新映射 N 所以我所要做的就是 shift-n ...非常快!

(额外的问题:^Z 是干什么用的?A:那是我 SCO 时代的遗留物,当时我会用手指按 ctrl-z 并弹出 vi 进入后台工作......我应该删除它,但是记忆......)

这是我的 gvimrc,用于在我使用的每个 Windows 机器上自定义 Vim:

" custom gvimrc " 这个命令在 GUI 启动时执行。" slc 07/05/2013 - 默认(通常是 c:\program files\Vim)

设置标尺

设置制表符=3

设置 shiftwidth=3

设置扩展选项卡

设置无备份

设置备份目录=C:\Windows\Temp

设置目录=C:\Windows\Temp

彩色果仁蛋糕

设置 nohlsearch

地图 N :bn

地图 ZZ :xa

map ^Z :No Jobs...不在 Vim 中使用...

语法

于 2013-08-21T04:25:55.520 回答