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要快得多,所以我从第一个选项卡到达最后一个选项卡。
我的猜测解释是否正确?
答案 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将创建一个新文件。