我正在尝试改进不同标签之间的导航。我了解到可以使用
:tabn
:tabp
将当前标签更改为下一个和上一个标签。
我想做一些能够移动到第4个上一个或下一个标签的内容。但是,而
:4 tabp
工作正常,命令
:4 tabn
总是切换到第4(绝对)位置的标签。任何人都可以重现这种行为吗?什么可能导致这个?
答案 0 :(得分:2)
我可以重现这种行为,它与文档匹配:
:tabn[ext] *:tabn* *:tabnext* *gt*
<C-PageDown> *CTRL-<PageDown>* *<C-PageDown>*
gt *i_CTRL-<PageDown>* *i_<C-PageDown>*
Go to the next tab page. Wraps around from the last to the
first one.
:tabn[ext] {count}
{count}<C-PageDown>
{count}gt Go to tab page {count}. The first tab page has number one.
:tabp[revious] {count}
:tabN[ext] {count}
{count}<C-PageUp>
{count}gT Go {count} tab pages back. Wraps around from the first one
to the last one.
但我之前没有注意到这一点,因为我使用这些命令而不计算。当我需要切换到不使用下一个或上一个的标签页时,我会使用{count}gt
。为避免计算相应的标签,我使用了一些设置来显示标签标签上的数字 - 请参阅:help setting-tabline
(如果使用gVim,请:help setting-guitablabel
。
答案 1 :(得分:2)
这种方法不一致,但有记录(参见@ mMontu的回答)。您可以使用映射更改此设置;例如,要覆盖gt
以转到[count]
下一个标签页而不是绝对标签页:
:noremap <expr> gt ':<C-U>' . (v:count > 1 ? (tabpagenr() + v:count - 1) % tabpagenr('$') + 1 : '') . 'tabnext<CR>'