Ich versuche, die Anzahl der Leerzeichen pro Einzug festzulegen, um eine neue Funktion in sh-mode
(Bash-Submodus) zu starten . Ich habe versucht einzustellen:
'(sh-basic-offset 2)
'(sh-indentation 2)
'(smie-indent-basic 2)
(wie in gezeigt custom-set-variables
in .emacs
und einige andere) als gut, aber keiner von ihnen haben keine Wirkung hatte!
indentation
shell-mode
bash
Robin Green
quelle
quelle
custom-set-variables
(dies wird intern von Customize verwendet, ist jedoch nicht für die manuelle Verwendung vorgesehen). Verwenden Sie besser Dinge wie(setq sh-basic-offset 2)
.Antworten:
Das Einstellen
sh-basic-offset
der erforderlichen Einrückung ist erforderlich. Ich habe jedoch nicht erkannt, dass alle Shell-Skriptdateien geschlossen und erneut geöffnet werden müssen, bevor die Anpassung wirksam wird. Ich kann mich nicht erinnern, dies jemals zuvor in Emacs getan zu haben.quelle
.emacs
müssen Sie entweder Emacs beenden und neu starten oderM-x load-file
zum erneuten Laden verwenden..emacs
Wenn Sie eine Datei, die Sie in Ihrem Editor geöffnet haben, neu laden möchten, können Sie sagenC-x C-v RETURN
, dass Sie sie erneut besuchen möchten .Ich habe den Basis-Offset auf 2 gesetzt, aber das schien nicht zu funktionieren. Ich ging zurück
C-h v sh-<TAB>
und stellte fest, dasssh-indentation
ich diese Variable auf 2 gesetzt hatte und jetzt alles wie ein Zauber zu funktionieren scheint.quelle
sh-basic-offset
stattdessen.Ich hatte die gleiche Erfahrung wie Albaro: Sh-Basic-Offset ohne Wirkung einstellen, aber Sh-Indentation wie erwartet einstellen.
In meinem Fall habe ich
(setq sh-basic-offset 2)
mit Emacs bewertet , z. über Mx-Auswertung. Ich renneGNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21) of 2017-09-22, modified by Debian
. Mein Hauptmodus ist Shell-Skript.quelle