Pregunta:
Siempre que estoy editando un script de shell en emacs y escribo tres chevrones para redirigir una cadena sin procesar a stdin, emacs inserta los caracteres 'EOF' y una nueva línea entre ellos, por lo que
cat <<< 'some string'
se convierte en
cat <<EOF
< 'some string'
Puedo volver atrás y eliminar los caracteres adicionales para obtener el búfer en el estado que quiero, pero este es un comportamiento muy desagradable y solo parece suceder en el modo de script de shell, que suele ser la única vez que escribo este patrón. ¿Hay alguna forma de desactivar este comportamiento?
Respuesta:
Esto es causado por sh-electric-here-document-mode
. Cuando está habilitado, <<
insertará un esqueleto de documento aquí.
Esto está habilitado por defecto. Puede desactivarlo con un gancho, como:
(add-hook 'sh-mode-hook (lambda () (sh-electric-here-document-mode -1)))