Vim - inconsistência entre: tabnext N e: tabprev N

0

Do :help tabs do Vim:

: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.

Enquanto

:tabn[ext] {count}
{count}<C-PageDown>
{count}gt   Go to tab page {count}.  The first tab page has number one.

Finalmente, :tabn sem parâmetros se comporta de forma consistente com :tabp e :tabp 1 .

Por que isso é ? É apenas para fazer 3gt pular para a aba 3 ao invés de 3 abas para frente? Nada impede que o vim tenha :tabn 3 e :tabjump 3 e vincule Ngt a usar :tabjump em vez de :tabn . Francamente, para mim isso parece um erro de design.

Podemos ter :tabp N equivalente para frente usando somente comandos internos? Notei que não se pode usar :tabprev -2 , por exemplo. Se não houver uma contraparte interna para :tabp N , por que :tabp N ?

    
por rr- 17.05.2015 / 14:09

1 resposta

2

Sim, isso é inconsistente, mas também acho as opções disponíveis convenientes. Ele permite tanto iterar para frente / para trás um por um, como endereçamento absoluto.

Por que é assim? Você pode pesquisar na lista de discussão do vim_dev arquivos para mensagens quando este recurso foi proposto / um patch enviado, ou perguntar se Alguém se lembra do fundo. (Note que existem muitos outros recursos com interfaces que não são ideais; é um projeto voluntário com um único gargalo no BDFL no topo, e o pior é melhor a mentalidade certamente se aplica aqui.

Para realizar a navegação relativa da guia na direção para frente, você pode usar:

:execute 'tabnext' tabpagenr() + N

Você pode definir facilmente um comando ou mapeamento personalizado, se achar isso útil.

    
por 17.05.2015 / 21:07

Tags