Ne touchez pas le fichier lors de l'écriture si le fichier n'a pas été modifié


15

Parfois, je tape distraitement :wquand je lis quelque chose. Cela provoque le temps de modification du fichier à changer et parfois mon système de génération à reconstruire inutilement une partie substantielle d'un projet.

Existe-t-il un moyen de configurer vim pour ne rien faire si j'essaie d'écrire un fichier et qu'il n'a pas été modifié?

Réponses:


15

Étendre la réponse de @ lcd047 que vous pouvez utiliser cabbrevpour modifierw

:cabbrev w <c-r>=(getcmdtype()==':' && getcmdpos()==1 ? 'up' : 'w')<CR>

Lorsque vous tapez, :wvous remarquerez qu'il sera remplacé par :uplorsque vous appuyez sur Entrée.


14

Pas directement (c'est-à-dire que le comportement de :wne peut pas être changé), mais vous pouvez apprendre à utiliser à la :upplace de :w. Il fait exactement ce que vous voulez.


3
Permettez-moi d'ajouter: j'utilise un mappage de touches préféré pour l'enregistrement, et je l'ai lié au :updatelieu d' :writeobtenir la configuration requise pour l'affiche originale.
— Giovanni Maggiorani
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.