我怎样才能在Vim中解释这种行为?

时间:2014-04-02 21:41:05

标签: vim vim-plugin

Vim太棒了。例如,您有一个名为“test0.html”的文件存储在一个文件夹中。

在同一文件夹中,将文件夹'test'与文件test1.html和test2.html一起存储。

然后你在test0.html中输入以下内容:

include('test/test1.html');
include('test/test2.html');

在vim中,您将光标放在文件名上。使用键gf打开corsor下的文件。这就是为什么Vim太棒了。 我想在新标签中打开。使用gF键可以实现这一点。 但是,如果您想要保留在同一个文件中,但是在后台标签中打开文件,就像Chrome一样? 所以我正在映射密钥。

noremap gf <c-w>gF<c-PageDown>  

因此,当我的光标位于test1.html上时,它会在背景选项卡中使用键gf打开。很棒,现在我很满意。 然后我想在光标下打开test2.html。

Vim跳转到test1.html的标签,而不是继续使用test0.html 当我尝试调试这种奇怪的行为时,只通过将gf映射到gF,然后手动执行CTRL + pagedown,我得到了预期的行为。
我的猜测是,在打开新选项卡(gF)之前执行命令时Vim要快得多,所以我从第一个选项卡到达最后一个选项卡。

我的猜测解释是否正确?

2 个答案:

答案 0 :(得分:2)

<c-PageDown>或更常用的gT将转到上一个标签。另一方面,<c-w>gF将在新选项卡中打开光标下的文件。该标签将是最后一个标签。因此,执行gT并不总能让您返回上一个标签。

您可以更改映射以返回上一个标签,如下所示:

nnoremap gf :execute "normal! \<lt>c-w>gF" . tabpagenr() . "gt"<cr>

但我个人建议您避免以这种方式使用标签并使用buffers instead

答案 1 :(得分:0)

noremap gf :tabe<cfile><CR><c-PageUp>

这甚至更好。当文件不存在时,Vim将创建一个新文件。

相关问题