Tuer des processus vim avec un script shell laisse des fichiers .swp

J’ai développé un script qui va tuer tous les processus ‘vim‘ travaillant sur les fichiers xxx.log:

ps -ef|grep vim|grep xxx.log|awk '{print $2}'|xargs kill -9 

Toutefois, les fichiers .swp (swap) restnt pour chaque instance vim tuée. Comment puis-je supprimer le fichier d’échange dans le même script ou une autre solution courte sans rechercher l’emplacement du swap, etc.?

Laisse tomber le -9 de kill ; Cela enverra le signal TERM (inate) à Vim, lui permettant de nettoyer et de supprimer le fichier d’échange (du moins, il l’a fait pour Ubuntu).

En utilisant -9 / KILL , vous n’accordez aucune chance au processus. Cela ne devrait être utilisé que dans des situations où cela est absolument nécessaire (par exemple, lorsque le processus est suspendu ou en boucle sans fin et ne réagit plus aux signaux externes).

Comme le fichier d’échange contient le nom que vous avez supprimé, vous devriez également pouvoir le trouver avec une action appropriée.

Cependant, tuer un éditeur interactif comme vim semble très faux à de nombreux niveaux. Vous devriez vraiment envisager de ne pas le faire. Dans quelle situation est-ce souhaitable?

Vous pouvez append

 set noswapfile 

à votre vimrc. Cela entraînera la création de fichiers d’échange en premier lieu.