Me gusta @RusAlex No me gustan los complementos. También me gusta saber qué código introduzco realmente.
nmap ,d :b#<bar>bd#<CR>
En resumen esto se suma una asignación de teclas a modo normal de vim espera de secuencia de teclas ,d
. Cuando se ejecuta, cambia a un búfer abierto previamente e intenta eliminar el búfer al que se alejó.
Eliminar un búfer fuera de pantalla mantiene la pantalla dividida como está.
El comando consta de tres partes separadas por espacios:
nmap
- añadir/cambiar asignación de teclas para el modo normal
,d
- secuencia de teclas para reaccionar a; primero ,
(coma), entonces d
:b#<bar>bd#<CR>
- secuencia de teclas para ejecutar
El comando a ejecutar consta de cinco partes:
:
- cambiar vim a modo de línea de comandos
b#
- cambie la ventana al buffer previamente abierto
<bar>
- espera un comando de seguimiento; representa |
(carácter de tubería); utilizado para encadenar comandos
bd#
- eliminar el búfer previamente abierta, es decir, la memoria intermedia acaba de cambiar lejos de
<CR>
- ejecutar el comando (s); representa el retorno de carro, básicamente las teclas Return
o Enter
El comando está en el formato que se utiliza en un archivo de configuración como ~/.vimrc
.Si desea agregar la asignación de dentro de vim antepones :
(colon) - la asignación a continuación, se perderá al salir de vim:
:nmap ,d :b#<bar>bd#<CR>
Cuando vim abierta por lo general es en modo normal a diferencia de los modos insertar (indicado en la parte inferior de la pantalla por -- INSERT --
después de presionar i
), visual y así sucesivamente. El n
en nmap
especifica la asignación de teclas que se agregará solo al modo normal. Encuentra más información sobre las asignaciones de here
Notas importantes:
b#
cambiará al búfer en uso si se trata de la memoria intermedia sólo se conoce.
b#
puede cambiar a un búfer oculto/cerrado, p. el que acaba de cerrar presionando ,d
.
bd#
cerrará el búfer actual si es el único búfer conocido que no separe la pantalla y le deje un búfer vacío.
bd#
fallará si el búfer desactivado es un búfer oculto/cerrado.
bd#
aún no se dividirá si después de cambiar otra ventana muestra el búfer para cerrar.
Notas adicionales:
:windo b#
cambiará todas las ventanas en el búfer previamente abierta. No estoy seguro de cómo combinar con bd
.
<CR>
se pueden omitir, en cuyo caso tiene que presionar manualmente Return
o Enter
para ejecutar.
:nmap ,
muestra todas las asignaciones de modo normal comenzando con ,
.
:ls
listas abren búferes.
posible duplicado de [Vim: Borrar búfer sin perder la ventana dividida] (http: // stackoverflow.com/questions/4465095/vim-delete-buffer-without-losing-the-split-window) – thirtythreeforty