Comment puis-je renommer le fichier en cours d'édition?


Réponses:


35

Vous pouvez enregistrer le fichier sous un nom différent en utilisant :w. Mais cette opération ne supprime pas l'ancien fichier et le fichier "ancien" reste dans votre mémoire tampon. Toute modification sera donc appliquée à votre "ancien" fichier.

:saveasenregistre votre nouveau fichier et l’ouvre dans un nouveau tampon. Mais cela ne supprime pas l'ancien fichier.

J'utilise tpope / vim-eneuch pour les :Movefichiers.

: Move: Renomme un tampon et le fichier sur le disque simultanément.


Un des inconvénients de :wou :saveasest qu'il perdra l'autorisation d'exécution si vous éditez un script. netrwRenommer conservera les autorisations.
Wisbucky le

11

Vous pouvez déposer sur Netrw et renommer le fichier ici.

Si le fichier que vous êtes en train de modifier se trouve dans le répertoire actuel, procédez comme suit:

:edit .

Accédez au fichier, appuyez sur Ret modifiez le nom. Appuyez sur Enterpour éditer le fichier.

Il y a cependant une mise en garde: le tampon d'origine reste dans la liste des tampons. Si vous passez à cela, il est vide.

Si le fichier que vous modifiez se trouve dans un autre répertoire, vous pouvez changer de répertoire avec:

:cd %:p:h

Si vous ne souhaitez pas modifier le répertoire pour la session entière de Vim mais uniquement pour le tampon actuel, vous pouvez alors effectuer les opérations suivantes:

:lcd %:p:h

2
Taper directement :edit %:p:hsemble aussi fonctionner.
Mladen Jablanović

:Eouvrira également netrw
wisbucky

6

J'utilise le plugin Rename2 pour cela depuis des années. Il renomme à la fois le tampon actuel et le fichier sur le disque:

:Rename {newname}

EDIT: J'ai trouvé ceci un .vimrcfichier sur github :

function! RenameFile()
    let old_name = expand('%')
    let new_name = input('New file name: ', expand('%'), 'file')
    if new_name != '' && new_name != old_name
        exec ':saveas ' . new_name
        exec ':silent !rm ' . old_name
        redraw!
    endif
endfunction
map <leader>n :call RenameFile()<cr>

3

Le meilleur moyen est d'utiliser :Move, comme l'a dit OrangTux. Pour être complet, vous pouvez également exécuter des commandes de terminal dans les éditeurs vi en utilisant un bang ( !) en mode commande.

:!mv {current_file} {new_name}
:e {new_name}

Cependant, cette méthode ne supprime pas l'ancien tampon de votre liste de tampons.

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.