459 votes

Renommer le fichier actuel dans Vim

Comment devrais-je renommer mon fichier actuel dans Vim?

Par exemple:

  • Je suis en train de modifier person.html_erb_spec.rb
  • Je voudrais le renommer en person.haml_spec.rb
  • Je voudrais continuer à modifier person.haml_spec.rb

Comment pourrais-je faire cela de manière élégante?

519voto

soulmerge Points 37314

La commande s'appelle :saveas, mais malheureusement elle ne supprimera pas automatiquement votre ancien fichier, vous devrez le faire manuellement. Consultez :help saveas pour plus d'informations.

ÉDITER:

La plupart des installations de vim ont un explorateur de fichiers intégré, que vous pouvez utiliser pour de telles opérations. Essayez :Explore en mode commande (je le mapperais en fait à une touche de fonction, c'est très pratique). Vous pouvez renommer des fichiers avec R ou les supprimer avec D, par exemple. Mais en appuyant sur dans l'explorateur, vous aurez une meilleure vue d'ensemble.

1 votes

Thx, Explorer fait le travail, c'est cependant un peu maladroit

3 votes

: Explore fonctionne très bien! Je me débarrasse de NERD-tree en faveur de celle-ci!

6 votes

Je ne pense pas que ce soit gênant par rapport à d'autres éditeurs où vous ne pouvez généralement pas déplacer un fichier. Au lieu de cela, vous devez vous rendre dans le gestionnaire de fichiers de votre choix, renommer le fichier et revenir à votre éditeur. Si vous avez de la chance, vous devrez quitter et redémarrer votre éditeur si la notification de modification du nom de fichier n'a pas été reçue.

208voto

ISQ Points 601

Si vous utilisez git et avez déjà le plugin de tpope fugitive.vim, alors simplement:

:GRename nouveau_nom

Cela va:

  1. Renommer votre fichier sur le disque - dans le même répertoire que le fichier ancien.
  2. Renommer le fichier dans le dépôt git.
  3. Recharger le fichier dans le tampon actuel.
  4. Préserver l'historique d'annulation.

Si votre fichier n'a pas encore été ajouté à un dépôt git, ajoutez-le d'abord:

:Gwrite

Si vous souhaitez déplacer le fichier vers un nouvel emplacement, utilisez :GMove

:GMove chemin/vers/nouveau_fichier

8 votes

Larmes sortant de mes yeux. La réponse parfaite!

4 votes

J'ai sacrifié deux chèvres en l'honneur de cette réponse! Mais j'ai un petit problème avec ça, parce que vous devez taper le chemin à partir de la racine de l'arborescence de travail; et cela devient souvent plutôt long dans n'importe quel projet. Y a-t-il une solution à cela?

1 votes

C'est formidable! Je continue à découvrir de nouvelles choses que le fugitif peut faire.

110voto

woto Points 364

Je le fais avec le plugin NERDTree :

:NERDTreeFind

puis appuyez sur m

Pour renommer, vous pouvez choisir (m)ove the current node et changer le nom du fichier. Il existe également des options comme supprimer, copier, déplacer, etc...

3 votes

Tu sais quoi, c'est la principale façon dont je renomme les choses de nos jours

4 votes

Celui-ci fonctionne vraiment bien. Je le recommande vivement.

1 votes

Adorer l'idée. Ceci sera ma méthode principale de changement de nom de fichier maintenant.

91voto

innaM Points 22831

Il y a un petit plugin qui vous permet de faire cela.

0 votes

code : Renommer %:p:h/_new_file_name.html.erb sauvegardera le fichier dans le même répertoire que le fichier renommé.

3 votes

Renommer déplacera un fichier de son emplacement vers le répertoire de travail actuel (CWD), donc assurez-vous de définir d'abord le CWD ou de préfixer le nouveau nom de fichier avec le sous-répertoire approprié.

10 votes

Cette version mise à jour de Rename.vim gère correctement le CWD - enregistre toujours le fichier dans le répertoire de l'original.

83voto

gimel Points 30150
  • Écrivez dans le fichier tout en éditant - :w newname - pour créer une copie.
  • Commencez à éditer la nouvelle copie - :e#.
  • (Facultatif) Supprimez l'ancienne copie - :!rm oldname.

Sous Windows, le 3ème pas facultatif change un peu :

  • (Facultatif) Supprimez l'ancienne copie Windows - :!del oldname.

4 votes

Je utilise cette approche tout le temps, cependant, l'inconvénient est que vous perdez votre arborescence d'annulation - donc vous ne pouvez pas annuler quoi que ce soit avant le :e

7 votes

Nice. Apparemment Ctrl-6 fait la même chose que :e#

0 votes

Vous pouvez également ouvrir le répertoire, déplacer le curseur vers le fichier et appuyer sur "D" pour supprimer un fichier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X