Usiłuję ustawić liczbę spacji dla wcięcia dla uruchomienia nowej funkcji w sh-mode
(pod-tryb bash). Próbowałem ustawić:
'(sh-basic-offset 2)
'(sh-indentation 2)
'(smie-indent-basic 2)
(jak pokazano custom-set-variables
w .emacs
) i inni, a także, ale żaden z nich nie miał żadnego wpływu!
indentation
shell-mode
bash
Robin Green
źródło
źródło
custom-set-variables
(co jest rzeczą wewnętrznie używaną przez Dostosuj, ale nie jest przeznaczone do użycia ręcznego). Lepiej używaj takich rzeczy jak(setq sh-basic-offset 2)
.Odpowiedzi:
sh-basic-offset
Wymagane jest ustawienie wymaganego wcięcia - ale nie zdawałem sobie sprawy, że konieczne jest również zamknięcie i ponowne otwarcie wszystkich plików skryptów powłoki, zanim dostosowywanie zacznie obowiązywać. Nie pamiętam, żeby kiedykolwiek wcześniej to robiłem w emacs.źródło
.emacs
musisz albo wyjść z Emacsa i uruchomić go ponownie, albo użyć,M-x load-file
aby ponownie załadować..emacs
Jeśli chcesz ponownie załadować plik otwarty w edytorze, możesz powiedziećC-x C-v RETURN
„ponownie”.M-x set-variable
jeśli chcesz to zmienić dla bufora, w którym pracujesz.Ustawiłem-offset-podstawowy na 2, ale to nie działało, wróciłem wciśnięty
C-h v sh-<TAB>
i zdałem sobie sprawę, że istniejesh-indentation
ustawienie tej zmiennej na 2 i wszystko wydaje się teraz działać jak urok.źródło
sh-basic-offset
zamiast niej.Miałem to samo doświadczenie co Albaro: ustawianie podstawowego przesunięcia sh bez efektu, ale ustawianie wcięcia sh działającego zgodnie z oczekiwaniami.
W moim przypadku
(setq sh-basic-offset 2)
oceniałem za pomocą emacsa, np. poprzez Mx eval-expression. BiegnęGNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21) of 2017-09-22, modified by Debian
. Moim głównym trybem jest skrypt powłoki.źródło