Por lo general, abro algunas ventanas y mantengo algunos tampones abiertos. Dado que mi MO en la exploración de búferes es usar atajos rápidos para :bn
y :bp
, quiero cerrar los búferes innecesarios para que no distraigan mi navegación en el búfer.
Pero el dolor es, emitir :bd
y :bw
resulta en cerrar la ventana también, en caso de que tenga varios abiertos. ¿Cómo cierro (elimino) un búfer y dejo las ventanas intactas?
Solución inspirada en la respuesta de @ peth
:command! BW :bn|:bd#
Es simple. No funciona bien con solo un búfer abierto (obtengo un comportamiento diferente según la forma en que abro los archivos) pero no es un gran problema. :)
Me metí un poco con esto y finalmente se me ocurrió:
Aquí está la versión copiar / pegar para la asignación de teclas:
O un comando para su .vimrc (llame con: Bd):
Lo he probado bastante y funciona de manera consistente en varias condiciones. Cuando se usa en el último búfer, lo dejará con un nuevo búfer en blanco.
fuente
Una ventana es una ventana gráfica en un búfer. (Ver
:help window
.) No puede tener una ventana sin un búfer asociado. Sin:enew
embargo, puede usar un comando como para reemplazar el contenido de la ventana actual con un búfer vacío.fuente
el complemento bufkill.vim también funciona. Me gusta usarlo con vim-command-w para mayor funcionalidad y sutilezas (como cerrará una división si es el último búfer o cerrar vim si es el último búfer / división).
fuente
Aquí hay otra solución:
Si escribe Ctrl + W y luego o creará una nueva ventana y cerrará la ventana anterior. El cursor se deja en la nueva ventana. Hay una serie de efectos positivos:
fuente
Creo que el problema es que la mayoría de la gente espera que el búfer vim y la ventana sean algo que no son.
La gente tiende a pensar en una ventana vim como un proceso independiente que tiene su propia lista de buffers, pero lamentablemente no lo es. Una ventana vim es solo una ventana gráfica de sus buffers.
Por lo tanto, surgen muchos problemas, como su problema o el problema de que diferentes ventanas comparten la misma lista de búfer, por lo que no puede editar el Búfer 1 en la Ventana A y dejar que la Ventana B ignore el Búfer 1 en su lista de búfer.
Mi solución es abrir dos instancias de vim, para que pueda tener el tipo de ventana de vim que desee. Funciona mejor en mosaico de WM.
fuente
Por lo general, solo abro el menú mientras estoy en cualquier búfer. Esto abrirá el menú en el panel izquierdo y el cursor estará activo allí. Así que simplemente vuelvo al búfer activo y elimino el búfer.
Después de eso, puedo abrir otro archivo desde el menú.
Mis pasos son:
fuente