2013-02-17 13 views
5

Nella guida di stile PEP 8 per python, si raccomanda che i commenti in linea siano separati dal resto della riga per two spaces. Tuttavia, il valore predefinito in Emacs è che l'esecuzione di comment-dwim o indent-for-comment mette solo uno spazio tra la fine della riga e il commento. C'è un modo per cambiare questo comportamento predefinito in emacs?Emacs imposta spaziatura per commenti in linea (fine riga)

Sono in esecuzione Emacs 23.3.1

risposta

5

Questo dovrebbe fare quello che vuoi:

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

provare a impostare comment-start a " # " (uno spazio prima, uno dessert).

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

Questo _somewhat_ opere, ma ha due problemi: in primo luogo, cambia la sintassi di commento per tutte le linee (così quando ho commentare una riga, vengono commentati con uno spazio extra , allineandoli con il resto del testo). In secondo luogo, se eseguo 'comment-dwim' sulla riga con il commento in linea di nuovo, riallinea il commento in linea per avere solo uno spazio. – rottweiler

+0

Sì, ho capito. Avevo iniziato a scavare attraverso la fonte la notte scorsa, cercando di trovare il punto in cui è stato inserito il primo spazio, ma ho esaurito il tempo. – derekv

1

Penso che questo potrebbe fare quello che vuoi:

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

È possibile controllare la documentazione del emacs da C-h v RET comment-inline-offset, allora troverete la rispondi come @ e detto.

Ecco una versione semplificata:

(add-hook 'python-mode-hook 
    (lambda() (setq-local comment-inline-offset 2))) 
Problemi correlati