在Vim中如何在两个文件之间跳转

时间:2013-06-11 10:09:03

标签: vim

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

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

注意:我不想在拆分窗口或多个标签页面中打开这两个文件。

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

感谢任何提示

7 个答案:

答案 0 :(得分:9)

使用<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.

答案 1 :(得分:6)

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

答案 2 :(得分:5)

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

说,您已加载file1file2file3并希望在23之间切换:

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

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

答案 3 :(得分:4)

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

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

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

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

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

还有一个名为unimpaired的插件让你更开心!

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

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

:ls然后:b a_number转到该缓冲区。

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

答案 4 :(得分:2)

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

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

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

答案 5 :(得分:2)

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

答案 6 :(得分:0)

我用:bn转到下一个打开的文件,但是因为我很懒 重新映射N所以我所要做的就是换班......非常快!

(奖金问题:这是什么^ Z? - 答:这是我的SCO日的结转,当我会胖手指ctrl-z 并将vi转换为后台工作...我应该删除它,但记忆......)

这是我的gvimrc,用于在我工作的每个Windows框上自定义Vim:

“自定义gvimrc “GUI中的命令在GUI启动时执行。 “slc 07/05/2013 - 默认(通常是c:\ program files \ Vim)

设置标尺

设置tabstop = 3

设置shiftwidth = 3

设置expandtab

设置nobackup

设置backupdir = C:\ Windows \ Temp

设置dir = C:\ Windows \ Temp

colorschem torte

设置nohlsearch

映射N:bn

映射ZZ:xa

map ^ Z:没有工作......没有在Vim中使用......

上的

语法