2011-02-04 3 views
5

Python modu ve python.el'ye baktım. Python-mode.el kullanıyorum. Ayrıca ip ve ropemac kullanıyorum. Bana ya da başka bir elisp paketine ya da başka bir şeye yardımcı olan bazı belgelere bakıyorum.Emacs'de Python'u Düzenleme

Geçerli sorunum, verdiğim kodun tutarsız girinti boyutlarına sahip olması. Bazı bloklar için bu iki olacak, bazıları için 4 olacak. Bunu temizlemek istiyorum, ama bazı nedenlerle, emacs "çentik düzeltmek" anladığımda, sadece her satırın sekmesini vurur, bu da kodu kesiyor. İstediğim şey aynı göreceli girintiyi korumak, ancak 4 alan üzerinde standartlaştırmak. Bir şey bana bunu kolayca yapmama izin verecek mi?

Her bir kötü girinti örneğini bulabildiğimi, engelleyebileceğimi ve 2 alanı 2 boşlukla sorgu değiştirebileceğimi varsayalım. Ama bu, doğruluğumun üzerinde çok fazla dayanıyor, bunun yapılması gerekenleri farketmek. Ayrıca, çok fazla kod var.

Birisi bana bisiklet tamircisinin bunu çözeceğini söyledi, ancak bu birkaç yıl boyunca gelişmeden çıktı ... Diğer öneriler?

Teşekkürler.

+3

Gerçekten bir emacs cevap rapor, ancak (http://stackoverflow.com/questions [Alex Martelli bu yanıtında] isteyebilecek lütfen/1024435/howto-fix-python-girinti/1024489 # 1024489). –

+0

Teşekkürler! En azından bir problemi çözüyor! –

cevap

0

Sven Marnach'ın kod tabanını temizleme konusundaki yorumunu kullandığınızı varsayalım, python-mode.el dosyasını tercih ettiğin girinti stilini kullanmanız gerektiğini tahmin ediyorum.

değişkenler py-indent-offset bakın ve py-smart-indentation (ve belki de py-continuation-offset ve py-honor-comment-indentation). Normal indent-tabs-mode gibi.

Sen (M-xcustomize-groupRETpythonRET) bunları özelleştirin veya python-mode-hook için özel bir işlev eklemek ya. ör .:

(add-hook 'python-mode-hook 'my-python-mode-hook) 
(defun my-python-mode-hook() 
    (setq indent-tabs-mode nil 
     py-smart-indentation nil 
     py-indent-offset 4)) 
+0

Evet, bence 4 varsayılan ve istediğim buydu. Sven'in önerisini kullanmak ve kod bloklarını daha kolay hareket ettirmek için bazı araçlara sahip olmak daha fazla ... –

-1
(custom-set-variables 
    ... 
    '(indent-tabs-mode nil) 
    '(tab-stop-list (quote (4 8 16 24 32 40 48 56 64 72 80 88 96 104 112 120))) 
    '(tab-width 4)) 

Açıkçası bu (python-mod yapar) onları onurlandırmak modları için genel ayarlardır. Python modunun girinti ayarları ile hiç dalga geçmedim. `T' bunu yapmalıyım

akım piton-mode.el ayarlı py-smart-girinti ile