Souvent, je charge des informations dans un tampon temporaire, puis je le ferme avec :clo!
. Mais cela cache le tampon plutôt que de le décharger entièrement, même si je l’ai nohidden
défini. Je trouve cela fastidieux car je reçois une confirmation supplémentaire lorsque je quitte Vim, à propos du contenu que j’ai déjà (pensé) jeté.
Je pourrais simplement utiliser à la :q!
place, mais c'est une mauvaise habitude à prendre, car il quittera Vim entièrement s'il ne reste plus qu'un tampon, ce qui est également gênant. Pire encore, si je tape :qa!
, je pourrais perdre beaucoup de travail.
Y a-t-il un terrain d'entente? J'aimerais vraiment une commande qui tue le tampon actuel mais ne quitte pas Vim. Je ne suis pas opposé à l'écrire dans Vimscript, mais je l'éviterais plutôt si la commande existe déjà.
la source
:ls
est plus facile (imo) à mémoriser et fait la même chose que:buffers
Vous pouvez effacer complètement un tampon en utilisant la commande: bwipeout (ou: bw). Cela supprime complètement le tampon de la mémoire, y compris les repères, les options, etc. que vous y avez ajoutés. De même,: bdelete (ou: bd) supprime le tampon, mais le laisse en mémoire et conserve les repères et les options.
Selon le commentaire de Tom Hale, la documentation de Vim recommande d'utiliser: bd over: bw sauf si vous savez ce que vous faites. J'ai tendance à utiliser: bw parce que, comme l'idée de supprimer complètement le tampon de la mémoire, et que je ne me sers pas beaucoup des marques, des paramètres d'option spécifiques au tampon, etc., au point de les obliger à rester après la fermeture de mon tampon.
Comme pour la commande: quit (: q), Vim donnera une erreur si le tampon a changé. Pour résoudre ce problème, vous pouvez ajouter un point d'exclamation après la commande pour supprimer l'invite. Une autre option, au lieu d’ajouter des points d’exclamation, consiste à ajouter «set confirm» à votre vimrc. Avec cet ensemble, vim vous invitera à enregistrer les modifications de fichier à la fermeture.
: bufdo est une commande utile qui exécute une autre commande sur tous les tampons actifs. La combinaison de la commande: bufdo avec la commande: bw /: bd vous permet de supprimer tous les tampons actifs en même temps. Vous pouvez toujours utiliser le point d'exclamation pour supprimer les erreurs, mais si vous le placez après: bufdo, après: bw ou après les deux, des résultats différents pour chacun:
Voici quelques autres commandes de tampon utiles:
Il y a beaucoup plus de choses sur le traitement des tampons qui sont hors du champ de cette question. Jetez un coup d'œil sur:
http://vim.wikia.com/wiki/Vim_buffer_FAQ http://vimdoc.sourceforge.net/htmldoc/windows.html#buffers
la source
:bd
préférez dans la plupart des cas:bw
faire au-delà de "Tout ce qui est lié au tampon est perdu. Toutes les marques de ce tampon deviennent non valides, les paramètres des options sont perdus, etc.". Cela me semble tout à fait raisonnable si je veux "fermer" un tampon comme ce serait le cas si je quitte complètement Vim.