¿Cómo cambio el nombre de un archivo abierto en Emacs?
¿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.
Aceptado
Sí, con dired
el modo puedes:
C-x d
abrir dirigidoRET
para seleccionar el directorio del archivo actualC-x C-j
(dired-jump
al nombre del archivo actual, en Dired)R
para cambiar el nombre del archivo (odired-do-rename
).q
para 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, mv
no cambiará el acceso ni modificará los tiempos del archivo en el sistema de archivos.
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.
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".