Como eu uso o jumplist para pular uma vez por arquivo?

5

Ao navegar no Vim, muitas vezes me vejo pulando para um arquivo, pulando pelo arquivo, depois para outro arquivo e assim por diante. Finalmente, quero voltar ao arquivo original. Usar <CTRL-O> faz o trabalho, mas requer muito mais impressoras do que eu gostaria.

Estou ciente de que eu poderia definir uma marca de antemão, mas gostaria de uma solução que não requer nenhum pensamento inicial.

Estou procurando uma maneira de navegar de volta pelo jumplist, parando exatamente uma vez por arquivo.

    
por Paul Carey 31.03.2013 / 00:44

3 respostas

5

Meu plug-in EnhancedJumps tem variantes de mapeamento de <C-o> / <C-i> para restringir saltos para a corrente ou para diferentes buffers.

<Leader><CTRL-O>, <Leader><CTRL-I> Go to [count] older / newer cursor position in another buffer. Jumps inside the current buffer are not considered. Useful for recalling previously visited buffers without going through all local positions. Regardless of the jump direction, the last jump position in a buffer is used when there are multiple subsequent jumps in a buffer.

    
por 31.03.2013 / 13:06
0

Não sei se entendi bem. Você quer pular entre arquivos / buffers, não as posições no jumplist. (que pode ter muitas posições no mesmo arquivo)

Em seguida, você pode verificar os comandos relacionados ao buffer. por exemplo,

:ls        "list all buffers, Number, name
:b[N]      "switch to buffer N
:b <tab>   "after tab, buffer name auto-completion 

e existem muitos plugins que nos ajudam a mudar facilmente o buffer.

    
por 31.03.2013 / 01:18
0

O objetivo do jumplist não é ajudá-lo a pular do buffer para o buffer: ele registra todos os movimentos de pulo que você faz. Como o uso típico do vim inclui muitos saltos dentro e entre os buffers, seria um erro usá-lo para navegar entre os buffers.

A menos que você nunca use movimentos de salto, é claro. Mas isso seria um erro ainda maior.

O Vim tem a lista de buffers que, como o nome indica, é uma lista de todos os seus buffers e vem com vários comandos de navegação próprios. Infelizmente, essa lista é "estática": você pode navegar para o buffer anterior na lista, mas não para o buffer acessado anteriormente. O Vim não mantém essa lista.

Eu navego buffers com nomes. Mas provavelmente poderia ser possível escrever uma função que arquiva o jumplist e navega para o primeiro buffer diferente. Eu não posso fazer isso neste telefone agora, mas não acho que seria muito difícil.

    
por 31.03.2013 / 09:26

Tags