Cada vez que edito un script de shell en emacs y escribo tres galones para redirigir una cadena sin formato a stdin, emacs inserta los caracteres 'EOF' y una nueva línea entre ellos, así que
cat <<< 'some string'
se convierte
cat <<EOF
< 'some string'
Puedo regresar 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 shell-script, que generalmente es la única vez que escribo este patrón. ¿Hay alguna forma de deshabilitar este comportamiento?
bash
shell-mode
Erik
fuente
fuente
<<<
conC-3 <
.sh-mode-hook
no funcionó para mí, pero losh-set-shell-hook
hizo.glucas es exactamente correcto, pero para complementar su respuesta, tengo este código que he utilizado para hacer que la inserción de documentos sea un poco más inteligente.
Este consejo, junto con
sh-electric-here-document-mode
habilitado, hace que si escribe dos galones se creará el documento automático aquí, pero luego, si el siguiente carácter que escribe es otro galón, se revertirá y quedará con solo <<<.Por supuesto, esto significa que si usted realmente desea iniciar un doc aquí con un galón, que necesitará para insertarlo en bruto, C-q<. Entonces, depende de lo que haga más, si hace más cadenas aquí que documentos aquí, puede ser bueno tenerlo, incluso si no lo hace, es raro que desee comenzar un documento aquí con un galón y ser incomodado
fuente