我需要在Vim中的两个文件之间来回跳转。
我可以手动执行:e file1.txt
,然后:e file2.txt
。是否有直接跳转到以前打开的文件的快捷方式?
注意:我不想在拆分窗口或多个标签页面中打开这两个文件。
我正在寻找像[ctrl + o]
之类的东西,只有跳转应该是前一个文件,而不是同一文件中的先前位置
感谢任何提示
答案 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#
:当您打开两个以上的文件时,这会更方便。
说,您已加载file1
,file2
,file3
并希望在2
和3
之间切换:
: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中使用......
上的语法