392 votos

Cambiar el nombre del archivo actual en Vim

¿Cómo debo ir sobre el cambio de nombre de mi archivo actual en vim.

Por ejemplo:

  • Estoy editando person.html_erb_spec.rb
  • Me gustaría que renombrado como person.haml_spec.rb
  • Me gustaría continuar editando person.haml_spec.rb

¿Cómo voy a ir haciendo esto, elegantemente?

450voto

soulmerge Puntos 37314

El comando se llama :saveas, pero por desgracia no va a eliminar su archivo antiguo, deberás hacerlo manualmente. ver :help saveas para más información.

EDICIÓN:

La mayoría de vim instalaciones han integrado el explorador de archivos, que puede utilizar para este tipo de operaciones. Intente :Explore en el modo de comando (en realidad yo lo asignan a una tecla de función, es muy práctico). Usted puede cambiar el nombre de archivos con R o eliminar con D, por ejemplo. Pero presionando <F1> en el explorador le dará una mejor visión de conjunto.

158voto

ISQ Puntos 601

Si utiliza git y ya tienen la tpope del plugin fugitive.vim , a continuación, simplemente:

:Gmove newname

Este:

  1. Cambiar el nombre de tu archivo en el disco.
  2. Cambie el nombre del archivo en el repositorio git.
  3. Volver a cargar el archivo en el buffer actual.
  4. Preservar el historial de deshacer.

Si el archivo no ha añadido un repositorio git, a continuación, agregar primero:

:Gwrite

87voto

innaM Puntos 22831

Hay un pequeño plugin que vamos a hacer esto.

72voto

gimel Puntos 30150
  • Escribir el archivo, mientras que la edición - :w newname - para crear una copia.
  • Inicio de la edición de una nueva copia - :e#.
  • (Opcional) eliminar la copia antigua - :!rm oldname.

En Windows, el sistema opcional de 3 de paso cambia un poco:

  • (Opcional) quitar la vieja copia de Windows - :!del oldname.

31voto

Gavin Gilmour Puntos 3109

Me gustaría recomendar :Rename de tpope del eunuco para esto.

También incluye un montón de otros comandos útiles.

El comando Rename se define como sigue en el mismo en la actualidad (verificación de la repo para las actualizaciones!):

command! -bar -nargs=1 -bang -complete=file Rename :
  \ let s:file = expand('%:p') |
  \ setlocal modified |
  \ keepalt saveas<bang> <args> |
  \ if s:file !=# expand('%:p') |
  \   call delete(s:file) |
  \ endif |
  \ unlet s:file

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X