Al editar un archivo de script bash con emacs, e intentar ingresar <<<, en el segundo <emacs inserte una plantilla para un documento aquí, como en el siguiente ejemplo:
<<EOF
EOF
Esta no es la salida deseada, porque ingresaría un literal <<<.
Por el momento, recurro a ingresar < < <y luego a eliminar espacios, pero prefiero que me permitan ingresar directamente.
bash
emacs
autocomplete
enzotib
fuente
fuente

Respuestas:
En realidad no hay necesidad de que la
my-disable-here-documentfunción personalizada de Tom vuelva a enlazar las teclas. Esta característica se puede habilitar y deshabilitar consh-electric-here-document-mode:(También se puede alternar para el búfer activo a través de
M-x sh-electric-here-document-mode).fuente
sh-mode-hookno funcionó para mí, pero losh-set-shell-hookhizo.Se unen
<aself-insert-commanden el modo de fiesta y luego se insertará sólo el carácter.De forma predeterminada, está vinculado
sh-maybe-here-documentcuando está en modo bash y esa función realiza la inserción automática.Aquí hay una manera de recuperar la clave:
fuente
<está vinculadaself-insert-commandde forma predeterminada.Si la única razón por la que desea deshabilitar el comportamiento here-doc es que le impide insertar una cadena here <<<, entonces el enlace
C-<a una función que contenga(insert "<<<")funcionará y aún permitirá la plantilla automática here-docfuente
Entro
<<<como M-3<en el modo shell.fuente
Tipo < C-q < <
fuente
Después de echar un vistazo a: http://web.mit.edu/dosathena/sandbox/emacs-19.28/lisp/sh-script.el se me ocurrió esta solución:
fuente