Ultimamente, tenho reduzido drasticamente o número de plugins que estou usando, então estou procurando respostas usando apenas os recursos internos do Vim.
Tenho notado uma falha no meu fluxo de trabalho quando estou editando muitos buffers: estou em um buffer e quero mudar para outro que não lembro o nome e que não é o buffer alternativo . Portanto, o uso :b#
não é possível e o uso da conclusão com o comando :b
também não é conveniente.
Para fazer isso, eu estava fazendo o seguinte:
- Primeiro uso
:buffers
para obter a lista de buffers abertos - Lembre-se do número do buffer que eu quero usar
- Pressione Enterpara fechar a lista de buffers
- Use
:bX
comX
o número do buffer a ser usado.
Esse fluxo de trabalho me pareceu bastante pesado, então adicionei as seguintes linhas ao meu
.vimrc
:
" Improve the navigation in the buffers
nnoremap <Leader><S-b> :B<CR>
command! B call Buffers()
function! Buffers()
execute "buffers"
let buffer=input("Enter a buffer:")
execute "b" . buffer
endfunction
Isso me dá um comando :B
(e um mapeamento) que chama a função :buffers
wait for a input e, finalmente, chama :b
seguido pela entrada.
Funciona bem, mas estou surpreso por ter desenvolvido essa função: normalmente o Vim tem um fluxo de trabalho padrão bastante eficiente, por isso estou me perguntando se existe uma maneira melhor de mudar para um buffer do qual não sei nada exceto que ele já foi aberto na minha sessão de edição.
:b#
não é o que estou procurando, mas sim, o fato de que você pode salvar um pressionamento de tecla digitando diretamente :b
sem pressionar enter
antes é interessante. (Na verdade, que é talvez leve demais para ser uma resposta, mas valeu a pena um comentário :-))
#
personagem como substituto de um número (buffer), em vez do #
caractere literal .
:ls
seguido:b#
(não precisa pressionar return ou escape primeiro, pode ir diretamente da lista de buffers em 'ls'.) (Publicando como comentário porque não parece substancial o suficiente para ser uma resposta? 'estou faltando alguma coisa e respondendo a pergunta errada).