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-document
funció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-hook
no funcionó para mí, pero losh-set-shell-hook
hizo.Se unen
<
aself-insert-command
en el modo de fiesta y luego se insertará sólo el carácter.De forma predeterminada, está vinculado
sh-maybe-here-document
cuando 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-command
de 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