¿Cómo cambio el nombre de un archivo abierto en Emacs?

Resuelto Pablo Fernandez asked hace 15 años • 15 respuestas

¿Hay alguna manera de cambiar el nombre de un archivo abierto en Emacs? ¿Mientras lo veo? Algo así como guardar como, pero el original debería desaparecer.

Pablo Fernandez avatar Dec 21 '08 16:12 Pablo Fernandez
Aceptado

Sí, con diredel modo puedes:

  • C-x dabrir dirigido
  • RETpara seleccionar el directorio del archivo actual
  • C-x C-j( dired-jumpal nombre del archivo actual, en Dired)
  • Rpara cambiar el nombre del archivo (o dired-do-rename).
  • qpara volver al búfer de archivos (renombrado)

El cambio de nombre es equivalente a un shell mv, pero también actualizará los búferes abiertos y, a diferencia de esto, mvno cambiará el acceso ni modificará los tiempos del archivo en el sistema de archivos.

Chris Conway avatar Dec 21 '2008 16:12 Chris Conway

Sólo para completar, dado que algunas personas pueden visitar esta página pensando que obtendrán una respuesta para la función "guardar como" de Emacs, eso es Cx Cw para un archivo abierto.

Jim G avatar Oct 10 '2009 17:10 Jim G

Pruebe esta función del .emacs de Steve Yegge :

;; fuente: http://steve.yegge.googlepages.com/my-dot-emacs-file
(defun cambiar nombre-archivo-y-búfer (nuevo-nombre)
  "Cambia el nombre del buffer actual y del archivo que está visitando a NEW-NAME".
  (interactivo "sNuevo nombre: ")
  (let ((nombre (nombre-búfer))
        (nombre de archivo (nombre-de-archivo-búfer)))
    (si (no es el nombre del archivo)
        (mensaje "¡El búfer '%s' no visita un archivo!" nombre)
      (si (obtener-búfer nuevo-nombre)
          (mensaje "¡Ya existe un buffer llamado '%s'!" nuevo-nombre)
        (pronto
          (cambiar nombre de archivo nombre de archivo nuevo nombre 1)
          (renombrar-búfer nuevo-nombre)
          (establecer-nombre-del-archivo-visitado nuevo-nombre)
          (set-buffer-modificado-p nil))))))

Eche un vistazo a esa página, hay otra función relacionada realmente útil, llamada "mover-búfer-archivo".

Matt Curtis avatar Dec 21 '2008 11:12 Matt Curtis