2012-11-26 11 views
10

nie wiem zbyt wiele o Emacs, ale po pewnym googling, ja edytowane mój plik .emacs się następująco:Jak mogę uzyskać Emacs wcięcia moje komentarze // z mojego kodu?

(setq c-default-style "bsd" c-basic-offset 4) 

Moim celem było uzyskanie Allman stylu wcięcia z 4 rozmieszczonych zakładkach. Działa zgodnie z oczekiwaniami, ale teraz moje komentarze // nie są wcięte z moim kodem. Przed Zmieniłem ten, kiedy wpisuję //, byłoby dostać auto-wcięte aby być w zgodzie z resztą kodu w funkcji. W jaki sposób mogę przekonać Emacsa do komentarzy z automatycznym wcięciem //?

Próbowałem dodanie c-indent-comments-syntactically-p 1 powyższej .emacs pliku, ale to nie to zmienić ...

Na przykład:

int main() 
{ 
    // I'd like this line to be auto-indented to match the block 
    for (int i = 0; i < 10; ++i) 
    { 
     // And this line to be auto-indented to match the block 
     doStuff(); 
    } 
} 

Obecnie TAB nie wciąć mój // komentarz i nie powoduje automatycznego wcięcia.

Odpowiedz

8

można sprawdzić i zmienić wartość tiret bieżącej poprzez umieszczenie punktu na danej linii i naciśnięciu C-c C-o. Dostosuj odpowiednie symbole do własnych upodobań.

To przyzwyczajenie być trwałe. Użyj bezpośredniego wywołania funkcji c-set-offset w .emacs aby dokonać zmian w skali globalnej.

Prosty przykład:

int main() { 
    // 
} 

To jest moja domyślna tiret. Po przesunięciu kursora do linii 2 widzę, że odpowiedni symbol to comment-intro.

Zastosowanie:

(c-set-offset 'comment-intro 6) 

uzyskać:

int main() { 
     // 
} 

offsetowy gromadzi się w poprzek symbolami:

int main() { 
     // 
    { 
      // 
    } 
} 
+0

Ale co jeśli to jest zagnieżdżony blok? – Cornstalks

+1

@Przesuń zbrojenie jest względne względem przesunięcia otaczającego. Dodałem przykład. – pmr

+0

Awesome. Biorąc pod uwagę mój mały plik '.emacs' z góry, jaki byłby właściwy sposób dodania tego? Umieszczenie '(setq c-default-style" bsd "c-basic-offset 4 (c-set-offset 'comment-intro 4))' w moim '.Plik emacs' tworzy barf Emacsa z błędem: 'Wrong type argument: symbolp, (c-set-offset (quote comment-intro) 4)' – Cornstalks

1

Uderzanie TAB wciąż wcięcie swój komentarz linii, prawda? To, czego nam brakuje, to automatyczne rozpoznawanie podwójnego ukośnika wyzwalającego autoindentację. Jest to realizowane przez (c-electric-slash). Po pierwsze upewnij się, że łamane jest nadal związany z tym poleceniem: C-h k / (pomoc na naciśnięcia klawisza ukośnik). Następnie, zakładając, że dokumentacja dla c-electric-slash pokazuje się, przeczytaj, aby dowiedzieć się, w jakich warunkach jest on hamowany.

+0

Nie. TAB nie wcawia już komentarza. Zmienię moje pytanie, żeby o tym wspomnieć. – Cornstalks

0

Jeśli chcesz umieścić swój komentarz na tej samej alignement swojego zakresu kodu, wystarczy dodać folllowing linię do pliku ~/.emacs:

(c-set-offset 'comment-intro 0) 
Powiązane problemy