¿Cómo deshabilito completamente toda la sangría automática en Emacs? Necesito deshabilitarlo al menos para el modo Fundamental, pero estoy de acuerdo con que se deshabilite globalmente para la sesión actual.
Lea el resto de esta pregunta antes de declararla como un duplicado. Todas las otras respuestas que he encontrado son para una desactivación mucho más específica de la sangría. Realmente quiero deshabilitar por completo toda la sangría automática para toda la sesión.
Establecer electric-layout-mode
en nil
no funciona.
Detalles
A veces me gusta componer grandes mensajes de confirmación de Git con mi editor de texto ASCII de Windows. Estos mensajes con frecuencia tienen listas de viñetas, bloques de código u otras cosas donde el formato preciso en mi documento fuente es significativo. Mi base de código está en Linux, y me conecto a la caja usando un cliente SSH de solo texto. Cuando Git ingresa a Emacs para editar el mensaje de confirmación, quiero poder copiar el mensaje de confirmación de origen en el portapapeles de Windows y luego pegarlo usando los comandos de pegar de Windows. Desde la perspectiva de Emacs, estoy escribiendo lo que se encontró en el archivo de texto de Windows. Desafortunadamente, cuando Emacs ve líneas con sangría, agrega su propia sangría automática, por lo que obtengo este enorme triángulo de espacios en blanco a lo largo del borde izquierdo del búfer.
Estoy usando GNU Emacs 24.3.1.
Solución alterna
Mi solución actual es transferir mi archivo de texto de Windows a un sistema de archivos montado por mi host Linux, cargar el archivo en Emacs, luego usar kill y yank para transferir el contenido. Esto es un poco torpe.
Ejemplo
Aquí hay un ejemplo de bloque de texto:
a
- b
c
d
Así es como aparece cuando pego eso en Emacs-under-ssh a través de MSWin paste:
a
- b
c
d
Si presiono C-h l
después de pegar, esto es lo que veo. Tenga en cuenta que las nuevas líneas se ingresan utilizando C-j
, no RET
.
a C-j C-j SPC SPC - SPC b C-j SPC SPC SPC SPC c C-j
SPC SPC SPC SPC d C-j C-h l
:set paste
? Eso básicamente dice "no toques el texto pegado de ninguna manera". Que también incluye la sangría automática.
hack-local-variables-hook
, Para deshacer esencialmente lo que otros modos principales establecen como parte de su Inicialización estándar.fundamental-mode
es sólo una pequeña función en el interiorsimple.el
- es decir,(kill-all-local-variables) (run-mode-hooks)
.M-x find-function RET fundamental-mode RET
- puede modificar / crear el suyo según sea necesario; sin embargo, si cambia el nombre, algunas funciones no lo usarán, por lo tanto, considere mantener el mismo nombre.