2013-02-17 9 views
5

W przewodniku po stylu PEP dla Pythona zaleca się, aby komentarze śródliniowe były oddzielone przez resztę wiersza od two spaces. Jednak domyślnie w Emacs jest to, że uruchamianie comment-dwim lub indent-for-comment powoduje umieszczenie tylko jednej spacji między końcem linii a komentarzem. Czy istnieje sposób na zmianę tego domyślnego zachowania w emacs?Rozmieszczanie zestawu Emacsa dla komentarzy wbudowanych (koniec wiersza)

Używam Emacsa 23.3.1

Odpowiedz

5

ten powinien robić to, co chcesz:

(add-hook 'python-mode-hook 
     (lambda() (set (make-local-variable 'comment-inline-offset) 2))) 
1

Spróbuj ustawić comment-start do " # " (jedno miejsce przed, jeden afters).

M-x set-variable comment-start " # " 
+0

Ten _somewhat_ działa, ale ma dwa problemy: po pierwsze, zmienia komentowania składnię dla wszystkich liniach (więc kiedy wykomentuj linię, dostają skomentował z dodatkową przestrzenią , nie łącząc ich z resztą tekstu). Po drugie, jeśli uruchomię 'comment-dwim' na linii z wstawionym komentarzem ponownie, to ponownie wyrównuje komentarz wbudowany, aby miał tylko jedną spację. – rottweiler

+0

Tak, rozumiem. Zacząłem kopać wczoraj przez źródło, próbując znaleźć miejsce, w którym wstawiono pierwsze miejsce, ale zabrakło mu czasu. – derekv

1

myślę, że może to zrobić, co chcesz:

(defun my-comment-indent() 
    (interactive) 
    (end-of-line) 
    (let ((comment-column (+ 2 (current-column)))) 
    (comment-indent))) 
1

Można sprawdzić dokumentację Emacs męska C-h v RET comment-inline-offset, to znajdziesz odpowiedź jako @I powiedział.

Oto uproszczona wersja:

(add-hook 'python-mode-hook 
    (lambda() (setq-local comment-inline-offset 2))) 
Powiązane problemy