Eu estou tentando definir o número de espaços por recuo para iniciar uma nova função em sh-mode
(sub-modo bash). Eu tentei definir:
'(sh-basic-offset 2)
'(sh-indentation 2)
'(smie-indent-basic 2)
(como mostrado na custom-set-variables
na .emacs
) e alguns outros também, mas nenhum deles teve qualquer efeito!
indentation
shell-mode
bash
Robin Green
fonte
fonte
custom-set-variables
(que é usada internamente pelo Customize, mas não deve ser usada manualmente). Melhor usar coisas como(setq sh-basic-offset 2)
.Respostas:
Definir
sh-basic-offset
o recuo necessário é o necessário - mas o que eu não percebi é que também é necessário fechar e reabrir todos os arquivos de script de shell antes que a personalização entre em vigor. Não me lembro de ter feito isso antes no emacs.fonte
.emacs
, você deve sair do emacs e reiniciá-lo, ou usarM-x load-file
para recarregar seu.emacs
arquivo . Se você deseja recarregar um arquivo que você abriu no seu editor, pode dizerC-x C-v RETURN
para "revisitá-lo".M-x set-variable
se quiser alterar isso apenas para o buffer em que está trabalhando.Eu ajustei o offset básico para 2, mas isso não pareceu funcionar, voltei pressionado
C-h v sh-<TAB>
e percebi que havia umsh-indentation
conjunto de variáveis para 2 e tudo parece funcionar como um encanto agora.fonte
sh-basic-offset
lugar.Eu tive a mesma experiência que o Albaro: definir sh-basic-offset sem efeito, mas definir sh-recuo funcionando conforme o esperado.
No meu caso,
(setq sh-basic-offset 2)
avaliei com o emacs, por exemplo. via Mx eval-expression. Estou executandoGNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21) of 2017-09-22, modified by Debian
. Meu principal modo é o script Shell.fonte