Últimamente he estado reduciendo drásticamente la cantidad de complementos que estoy usando, así que estoy buscando respuestas usando solo las funciones integradas de Vim.
He estado notando una falla en mi flujo de trabajo cuando estoy editando muchos buffers: estoy en un buffer y quiero cambiar a otro del cual no recuerdo el nombre y que no es el buffer alternativo . Por lo tanto, :b#
no es posible usarlo y usar la finalización con el comando :b
tampoco es conveniente.
Para hacer eso estaba haciendo lo siguiente:
- Primer uso
:buffers
para obtener la lista de buffers abiertos - Recuerda el número del búfer que quiero usar
- Presione Enterpara cerrar la lista de buffers
- Use
:bX
conX
el número del búfer a usar.
Este flujo de trabajo me pareció bastante pesado, así que agregué las siguientes líneas a mi
.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
Esto me da un comando :B
(y un mapeo) que llama a la función :buffers
esperar una entrada y finalmente llama :b
seguido de la entrada.
Funciona bien, pero me sorprende que haya tenido que desarrollar dicha función: por lo general, Vim tiene un flujo de trabajo predeterminado bastante eficiente, por lo que me pregunto si hay una mejor manera de cambiar a un búfer del que no sé nada, excepto que ya se abrió en mi sesión de edición.
:b#
no es lo que estoy buscando, pero sí, el hecho de que puede guardar una pulsación de tecla ingresando directamente :b
sin presionar enter
antes es interesante. (De hecho, eso puede ser demasiado ligero para ser una respuesta, pero valió la pena comentarlo :-))
#
personaje como un sustituto de un número (buffer), en lugar del #
carácter literal .
:ls
seguido de:b#
(no es necesario presionar regresar o escapar primero, puedo ir directamente de la lista de búfer en 'ls'). (¿Publicar como comentario porque no parece lo suficientemente sustancial como para ser una respuesta? También me pregunto si me falta algo y respondo la pregunta equivocada.)