Vous allez devoir utiliser une combinaison d'autocommandes. Ceux qui sont pertinents immédiatement évidents sont:
BufHidden
BufLeave
BufUnload
BufDelete
Cela couvrira les tampons se cachant, en les laissant pour d'autres tampons ou des fenêtres, la fermeture Vim et suppression de tampons. (Je pense que BufDelete
est redondant donné BufUnload
mais je ne suis pas totalement sûr d'avoir examiné tous les cas). Notez que VimLeavePre
ne fonctionnera que si le tampon que vous essayez d'enregistrer est actif, donc ce n'est pas ce que vous voulez.
Le autocommande modèle va être
:autocommand {event} {filename} w
Ou, si vous ne disposez pas d'un motif de fichiers facile à égaler ou il pourrait ne pas avoir du tout (dans ce cas, la commande w
aura besoin d'un argument de nom de fichier) vous pouvez utiliser des autocommandes locales. Celles-ci devront probablement être définies d'une manière ou d'une autre lors de la création du tampon, comme s'il s'agissait d'un script généré par un script pour afficher certaines informations. Pour plus d'informations à ce sujet, voir:
:help autocmd-buffer-local
Vous pouvez obtenir des informations sur la multitude d'événements autocommandes de
:help autocommand-events
autowriteall est une option globale. –
Non, autowriteall ne peut être défini que globalement, même si vous utilisez 'setlocal' il est défini globalement. –