2009-09-02 4 views

Odpowiedz

36

ten pochodzi z instrukcji Info dla Emacs trybie CC, stosując GNU Emacs 23.1 w systemie Windows:

  1. Zacznij budować swoją klasę Java, który nie jest wcięcia poprawnie. W twoim przypadku dokładnie to, co wpisałeś powyżej.
  2. Przenieś kursor na początek linii, która nie jest właściwie wcięta. W twoim przypadku "String Two) {".
  3. Hit C-c C-s (c-show-syntactic-information), aby zapytać Emacsa, jaki element składni myśli, na co patrzysz. W twoim przypadku powie coś w stylu ((arglist-cont-nonempty n m)).
  4. Użyj C-c C-o (c-set-offset), aby powiedzieć, że chcesz zmienić poziom wcięcia dla tego elementu syntaktycznego.
  5. Domyślnie jest to, co uważa się za element syntaktyczny, np. Arglist-cont-nonempty. Po prostu naciśnij RET, jeśli ta wartość domyślna jest prawidłowa.
  6. Teraz chce wiedzieć, jakie wyrażenie zastosować do obliczenia przesunięcia. W twoim przypadku wartością domyślną jest wyrażenie elisp. Usuń to i po prostu użyj pojedynczego znaku plus +.
  7. Przetestuj, aby upewnić się, że działa poprawnie: Hituj TAB kilka na różnych liniach lub w obszarze indentującym M-x lub podobnym.
  8. Żeby było trwałe, dodać to do pliku .emacs:

(. Setq c-offsety-alist „((arglist-cd-niepusty +)))

+1

Dziękuję za nie tylko udzielenie odpowiedzi na moje pytanie, ale także o wyjaśnienie mi, jak rozwiązać podobne problemy w przyszłości. :) –

+0

Doskonała odpowiedź. Bardzo pomocne naprawdę. Dzięki. –

+0

Tutaj możesz zobaczyć, dlaczego '' + 'btw i jakie inne opcje są dostępne: https://emacswiki.org/emacs/IndentingC#toc13 –

2

Lubię określić styl trybu w pierwszym wierszu pliku źródłowego. Spróbuj:

// -*- mode: java; c-file-style: "stroustrup" -*-

To daje racjonalne Tabularyzacja. Możesz także spróbować "k & r".

+0

Pamiętaj, że umieszczając to w rzeczywistym pliku, zastępujesz wszelkie dostosowania, które mogą mieć w swoich ustawieniach .emacs podczas przeglądania twojego pliku. Jeśli to możliwe, przenieś te rzeczy do pliku konfiguracyjnego. –