comandos - ¿Cómo configurar GNU Emacs para escribir archivos con formato UNIX o DOS de forma predeterminada?
comandos emacs (2)
He votado a favor de preguntas y respuestas, pero pasé un par de minutos posiblemente mejorando la información, así que la agregaré.
Primero, verifiqué la documentación de cada variable y la función en la respuesta del usuario 181548, primero (cortando y pegando en Emacs, luego) poniendo el cursor sobre cada una, y escribiendo Ch v RET
y Ch f RET
respectivamente.
Esto sugirió que solo podría necesitar
(prefer-coding-system ''utf-8-unix)
Experimentar con las otras líneas no parecía cambiar las codificaciones de búfer preexistentes (al teclear Ch C RET RET
para verificar ( describe-coding-system
) g
cada vez que se actualizaba), así que omití las otras líneas e hice una clave. enlace para cambiar rápidamente los archivos antiguos que aún eran DOS, es decir,
(defun set-bfr-to-8-unx ()
(interactive)
(set-buffer-file-coding-system
''utf-8-unix)
)
(global-set-key (kbd "C-c u")
''set-bfr-to-8-unx
)
Para los curiosos, para descubrir la tercera y cuarta línea de la función anterior, (set-buffer-file-coding-system ''utf-8-unix)
, usé Cx RET f RET
para cambiar manualmente la codificación del búfer actual, luego el Mx command-history RET
para ver cómo esas claves se traducen en código.
Ahora tal vez mi git commit dejará de lloriquear acerca de los RC.
He tenido estas funciones en mi archivo .emacs.el
durante años:
(defun dos2unix ()
"Convert a DOS formatted text buffer to UNIX format"
(interactive)
(set-buffer-file-coding-system ''undecided-unix nil))
(defun unix2dos ()
"Convert a UNIX formatted text buffer to DOS format"
(interactive)
(set-buffer-file-coding-system ''undecided-dos nil))
Estas funciones me permiten cambiar fácilmente entre formatos, pero no estoy seguro de cómo configurar Emacs para escribir en un formato particular de manera predeterminada, independientemente de la plataforma que esté usando. Tal como está ahora, cuando ejecuto en Windows, Emacs guarda en formato de Windows; cuando ejecuto en UNIX / Linux, Emacs guarda en formato UNIX.
Me gustaría dar instrucciones a Emacs para que escriba en formato UNIX independientemente de la plataforma en la que esté ejecutando. ¿Cómo hago esto?
¿Tal vez debería agregar algún modo de texto que llame a una de estas funciones? Por ejemplo, si estoy en Windows, ¿llamar a dos2unix
cuando encuentre un archivo de texto?
Tengo un montón de estos en mis .emacs:
(setq-default buffer-file-coding-system ''utf-8-unix)
(setq-default default-buffer-file-coding-system ''utf-8-unix)
(set-default-coding-systems ''utf-8-unix)
(prefer-coding-system ''utf-8-unix)
No sé cuál es el correcto, solo soy supersticioso.