«Le fichier d'échange xxx existe déjà» lors de la modification du fichier de configuration d'apache dans vim?

9

En utilisant vim, je reçois toujours un message disant "Le fichier d'échange xxx existe déjà" lorsque je modifie une configuration apache. Cependant, je ne le vois pas dans le répertoire de travail de tmp. Comment supprimer cela?

dzm
la source

Réponses:

16

Les fichiers d'échange Vim sont normalement cachés (les fichiers cachés Unix commencent par a .). Pour afficher les fichiers cachés ainsi que les fichiers normaux, vous devez ls -A(mnémonique: A pour tous). Cela devrait vous montrer si un fichier d'échange est là ou non.

quantique
la source
5

Cela se produit uniquement lorsque le fichier que vous essayez de modifier n'est pas entièrement enregistré sur le disque. Les scénarios sont les suivants:

  1. Vous arrêtez votre système de manière incorrecte, lorsqu'un fichier est toujours ouvert dans vi / vim.

  2. lorsque votre fichier est accédé simultanément via différentes / mêmes consoles dans vi.

vi / vim crée un fichier .swp chaque fois qu'un fichier est ouvert dans vi / vim. Chaque fois qu'un fichier est ouvert dans vi / vim, vi / vim vérifie ce fichier et s'il est trouvé, cet avertissement apparaît

Cela peut être évité de deux manières

  1. un en supprimant le fichier .swp qui est nommé

"chemin / du / fichier / vous / étiez / éditant / .votre_nom_fichier.swp"

  1. vous pouvez également opter pour le mode de récupération de vi / vim lors de l'ouverture du fichier et en appuyant sur l'option de récupération.

Je parle juste du premier scénario et il est sûr uniquement pour ce scénario. Le deuxième scénario est le cas différent.

kaji
la source
S'il y a eu des modifications non enregistrées, vous pouvez les récupérer en utilisant vi -r(ou vim -rsi vous préférez). J'écris généralement le fichier récupéré dans un fichier temporaire et diffcontre le fichier principal. (Je ne fais pas vraiment confiance à la récupération pour ne pas perdre d'informations.)
Keith Thompson
1

Si le fichier que vous modifiez est appelé, httpd.confle fichier d'échange sera appelé .httpd.conf.swp. Il est masqué sauf si vous ajoutez -aà vos lsarguments.

ls -a /etc/httpd/conf/
tylerl
la source
1

Pour supprimer le fichier d'échange sous Linux, utilisez cette commande

rm .filename.swp
amareswar reddy
la source
0

Dans le message, vous devriez voir le chemin d'accès complet au fichier. Vous pouvez le rm en copiant-collant le chemin comme suit:

rm -f /path/to/the/file

la source