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.