Comment vimgrep échanger des fichiers dans un répertoire

1

J'ai accidentellement fermé une fenêtre de terminal dans laquelle des onglets de vim étaient ouverts.

Maintenant, comment puis-je trouver ces fichiers d'échange en utilisant vimgrep ou terminal grep?

shinokada
la source

Réponses:

1

Vim enregistre les fichiers d'échange dans le même répertoire que le fichier que vous éditez par défaut. Vous devriez regarder là-bas.

Si vous l'avez changé dans votre .vimrc (ou vous avez téléchargé quelqu'un d'autre), vous devriez vérifier à nouveau si elles sont enregistrées ailleurs. L'option irait quelque chose comme set dir=~/.vim/swap.

Une fois que vous avez déterminé où les fichiers d'échange sont susceptibles d'être trouvés, nous devrions nous occuper de les récupérer. Sur un système * nix, ce sont des fichiers cachés (préfixés avec un . ), et sur les systèmes DOS (Windows), il peut être précédé du signe = (mais probablement pas caché).

Ainsi, sur un système * unix, le fichier que vous recherchez ressemblera à quelque chose comme: myfile.swX, où myfile est le nom du fichier que vous avez perdu, et X peut être n'importe quelle lettre après p (Vim renomme les fichiers d'échange au lieu de les supprimer).

Pour récupérer votre fichier une fois que vous l'avez trouvé, ouvrez Vim et exécutez :recover myfile.swp.

Bonne chance et j'espère que vous trouverez vos fichiers!

neersighted
la source
Ce n'est pas ce que j'ai demandé.
shinokada
2
(Vim) grep n'est pas utilisé pour trouver des fichiers. Il est utilisé pour rechercher le texte correspondant dans les fichiers. Le programme localiser (1) peut être utile, car il est conçu pour rechercher des fichiers dans le système de fichiers. Voir aussi find (1) pour rechercher l’arborescence.
neersighted
@shinokada, mais c'est ce dont vous aviez besoin.
romainl
1

Vous n'avez pas besoin grep pour cela, car les fichiers d'échange Vim peuvent déjà être identifiés par son extension de fichier . Lancer une recherche avec find depuis le répertoire de base contenant tous vos fichiers Vim ouverts ou le répertoire que vous avez configuré en tant que :set directory=...:

$ find . -name '.*.swp'

PS: comme :vimgrep ouvre les fichiers dans Vim lui-même, il ne pourra probablement pas gérer ses propres fichiers d'échange.

Ingo Karkat
la source