A menudo, cargaré información en un búfer temporal y luego la cerraré con :clo!
. Pero esto oculta el búfer en lugar de descargarlo por completo, aunque lo haya nohidden
configurado. Encuentro esto pesado porque recibo una confirmación adicional cuando salgo de Vim, sobre el contenido que ya (pensé) descarté.
Podría usar :q!
en su lugar, pero es un mal hábito porque saldrá de Vim por completo si solo queda un búfer, lo que también es molesto. Peor aún, si escribo un error :qa!
, podría perder mucho trabajo.
¿Hay un término medio? Realmente me gustaría algún comando que mate el búfer actual pero no salga de Vim. No me opongo a escribirlo en Vimscript, pero prefiero evitarlo si el comando ya existe.
fuente
:ls
es más fácil (imo) de recordar y hace lo mismo que:buffers
Puede borrar completamente un búfer utilizando el comando: bwipeout (o: bw). Esto elimina por completo el búfer de la memoria, incluidas las marcas, la configuración de opciones, etc. que haya agregado. Del mismo modo,: bdelete (o: bd) elimina el búfer, pero lo deja en la memoria y mantiene las marcas y la configuración de opciones.
Según el comentario de Tom Hale, la documentación de Vim recomienda usar: bd sobre: bw a menos que sepa lo que está haciendo. Tiendo a usar: bw porque me gusta la idea de eliminar completamente el búfer de la memoria, y no hago mucho uso de las marcas, configuraciones de opciones específicas del búfer, etc., hasta el punto de necesitar que permanezcan después de cerrar mi búfer.
Al igual que el comando: quit (: q), Vim dará un error si el búfer ha cambiado. Para solucionar esto, puede agregar un signo de exclamación después del comando para suprimir el mensaje. Otra opción, en lugar de agregar signos de exclamación a todo, es agregar "set confirm" a su vimrc. Con este conjunto, vim le pedirá que guarde los cambios del archivo al cerrar.
: bufdo es un comando útil que realiza otro comando en todos los búferes activos. La combinación del comando: bufdo con el comando: bw /: bd le permite eliminar todos los búferes activos a la vez. Todavía puede usar el signo de exclamación para suprimir errores, pero si lo coloca después de: bufdo, después de: bw o después de que ambos causen resultados diferentes para cada uno:
Aquí hay algunos otros comandos de búfer útiles:
Hay mucho más en el manejo del búfer que está fuera del alcance de esta pregunta. Echa un vistazo a:
http://vim.wikia.com/wiki/Vim_buffer_FAQ http://vimdoc.sourceforge.net/htmldoc/windows.html#buffers
fuente
:bd
es preferible en la mayoría de los casos:bw
hace más allá de "Todo lo relacionado con el búfer se pierde. Todas las marcas en este búfer se vuelven inválidas, la configuración de las opciones se pierde, etc.". Eso me parece perfectamente razonable si quiero 'cerrar' un búfer como lo sería si saliera de Vim por completo.