如何浏览Vim文件历史记录

时间:2012-07-12 05:08:20

标签: vim

我使用Vim 7.3和MRU plugin

使用此插件,当您键入:MRU时,您会看到一个包含最新使用文件的新窗口。这很酷,但我想要的东西比那更具特色:

让我们说我只使用一个窗口。我首先打开文件A,然后打开文件B,然后打开文件C.

既然我目前在文件C上,我想回到文件B然后用键击回到文件A,就像浏览器历史记录中的后退按钮一样。我想做同样的事情,从文件A回到文件B,最后回到文件C,就像我在玩浏览器历史一样。

我该怎么做?

3 个答案:

答案 0 :(得分:6)

Vim记录您在文件内和文件之间进行的最后100 jump motions的列表。您可以使用 Ctrl - O 跳回到以前的位置,然后 Ctrl - I 再次向前跳转。

答案 1 :(得分:3)

文件A,B和C在Vim用语中称为“缓冲区”。你想要的是能够直接从缓冲区跳转到缓冲区或者能够选择你想要跳转到的缓冲区。

从一个缓冲区跳转到另一个缓冲区很容易。它是使用:b命令或其表兄弟完成的:

:b filename<CR>         " jump directly to the named buffer
:b fil<tab>             " select from <tab>-navigable menu if
                        " more than one match, completes the 
                        " filename otherwise
:b <tab>                " select from <tab>-navigable menu
:2b                     " go to buffer number 2
:bfirst<CR>    (or :bf) " self-descriptive
:blast<CR>     (or :bl) " self-descriptive
:bnext<CR>     (or :bn) " self-descriptive
:bprevious<CR> (or :bp) " self-descriptive

从列表中选择缓冲区也很简单::ls<CR>显示编号的缓冲区列表并等待命令。此时,您键入:b <number><CR>:<number>b<CR>以跳转到所选缓冲区。您可以将以下映射添加到~/.vimrc,以使整个过程更快:

nnoremap <leader>b :ls<CR>:b<space>

还有a rather large number of buffer switching plugins可供您使用(页面的其余部分也充满了有趣的信息)。

我使用CtrlP(未列出),当我可以和上面的映射时,我不能。

答案 2 :(得分:0)

我还强烈推荐使用Tim Pope的Unimpaired插件,它允许您使用:bprev:bnext快捷方式执行[b]b还有更多。