Mis archivos tienen nombres largos y una parte del nombre de archivo es una fecha y un número de versión. A menudo me gustaría guardar el archivo en el búfer usando casi el mismo nombre, solo cambie el número de versión o la fecha.
Esto sería mucho más fácil si tuviera un comando que coloque el nombre de archivo del búfer actual en el anillo de eliminación, de modo que pueda abrir un archivo, luego escribir C-x C-w
(escribir archivo), extraer el nombre actual con Cy, cambiarlo y guardar eso.
Estoy usando Emacs 24.3 en Windows y 24.4 en Linux. Tengo que usar diferentes nombres de archivo y no git por varias razones. Estaría feliz si este comando funcionara con AUCTeX / LaTeX como modo principal.
Editar 1:
Cometí un error: no quiero escribir C-x C-f
(= buscar archivo), pero C-x C-w
(= escribir archivo). He corregido esto arriba.
Edición 2:
Encontré una pregunta y respuesta duplicadas: /unix//a/45381 ¡ Pero no hay mejor respuesta!
Edición 3:
Aquí: http://www.gnu.org/software/emacs/manual/html_node/elisp/File-Name-Components.html es una función, que selecciona la parte "no directiva" del nombre de archivo:
Función: nombre-archivo-nondirectory nombrearchivo
This function returns the nondirectory part of filename. (file-name-nondirectory "lewis/foo") ⇒ "foo" (file-name-nondirectory "foo") ⇒ "foo" (file-name-nondirectory "lewis/") ⇒ ""
Si tan solo supiera lisp ...
Respuestas:
No hay necesidad de hacer todo eso.
Simplemente:
C-x C-w
. Se le solicitará un nuevo nombre de archivo.M-n
, y el nombre de archivo actual se insertará por usted.RET
para guardar el archivo con este nuevo nombre.Aún tendrá el archivo original. Si desea volver a él, simplemente visítelo nuevamente con
C-x C-f
.fuente
ido
, hágaloC-f
primero y luegoM-n
.Copiar el nombre del archivo en el búfer actual
Aquí hay una función que uso del blog de Cameron Desautels que copia el nombre del archivo de búfer actual y lo muestra en el minibúfer.
Renombrar el nombre del archivo en el búfer actual
Magnar Sveen ha implementado la siguiente función en uno de sus blogs que convenientemente renombra el búfer actual de una sola vez. Esto no es lo que solicitó, pero pensé que podría estar relacionado con su caso de uso.
fuente
(buffer-file-name)
a(file-name-nondirectory (buffer-file-name))
en la primera función para obtener el nombre de archivo sin directorio.