Estoy tratando de establecer el número de espacios por sangría para iniciar una nueva función en sh-mode
(sub-modo bash). He intentado configurar:
'(sh-basic-offset 2)
'(sh-indentation 2)
'(smie-indent-basic 2)
(como se muestra en custom-set-variables
en .emacs
) y algunos otros también, pero ninguno de ellos ha tenido ningún efecto!
indentation
shell-mode
bash
Robin Green
fuente
fuente
custom-set-variables
(que es lo que internamente utiliza Customize pero que no debe usarse a mano). Mejor usar cosas como(setq sh-basic-offset 2)
.Respuestas:
sh-basic-offset
Lo que se necesita es establecer la sangría requerida, pero de lo que no me di cuenta es que también es necesario cerrar y volver a abrir todos los archivos de script de shell antes de que la personalización surta efecto. No recuerdo haber tenido que hacer esto antes en emacs.fuente
.emacs
, debe salir de emacs y reiniciarlo, o usarloM-x load-file
para volver.emacs
a cargar el archivo. Si desea volver a cargar un archivo que tiene abierto en su editor, puede decirC-x C-v RETURN
"volver a visitarlo".M-x set-variable
si desea cambiar esto para el búfer en el que está trabajando.Configuré-basic-offset en 2 pero eso no pareció funcionar, volví a presionar
C-h v sh-<TAB>
y me di cuenta de que había unash-indentation
variable que configuré en 2 y todo parece funcionar como un encanto ahora.fuente
sh-basic-offset
en su lugar.Tuve la misma experiencia que Albaro: configurar sh-basic-offset sin efecto, pero configurar sh-indentación funcionando como se esperaba.
En mi caso, evalué
(setq sh-basic-offset 2)
con emacs, por ejemplo. a través de Mx eval-expression. Estoy funcionandoGNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21) of 2017-09-22, modified by Debian
. Mi modo principal es Shell-script.fuente