2011-02-04 30 views
5

He visto python-mode y python.el. Estoy usando python-mode.el. También estoy usando sogas y cordeles. Estoy buscando alguna documentación sobre esto que me ayude, u otro paquete elisp o algo así.Editando Python en Emacs

Mi problema actual es que el código que he dado tiene tamaños de sangría inconsistentes. Para algunos bloques será dos, para algunos será 4. Quiero limpiar esto, pero por alguna razón, cuando le digo a emacs "corrección de sangrado" simplemente golpea la pestaña en cada línea básicamente, lo que daña el código. Lo que quiero es mantener la misma sangría relativa, pero estandarizar en 4 espacios. ¿Algo me deja hacer esto fácilmente?

Supongo que podría encontrar cada instancia de sangría defectuosa, bloquearla y reemplazar consultas 2 espacios con 4 espacios. Pero eso depende demasiado de mi precisión, advirtiendo dónde debe hacerse esto. Además, es un montón de código.

Alguien me dijo que el reparador de bicicletas resolvería esto, pero eso ha estado fuera de desarrollo desde hace varios años ... ¿Alguna otra sugerencia?

gracias.

+3

No es realmente una respuesta emacs, pero que podría estar interesado [en esta respuesta por Alex Martelli] (http://stackoverflow.com/questions/1024435/howto-fix-python-indentation/1024489 # 1024489). –

+0

Gracias! que al menos resuelve un problema! –

Respuesta

0

Suponiendo que ha utilizado el comentario de Sven Marnach para limpiar el código base, supongo que solo necesita hacer que python-mode.el use el estilo de sangría que prefiera?

mirada a las variables py-indent-offset, y py-smart-indentation (y quizás también py-continuation-offset y py-honor-comment-indentation). Además de la normal indent-tabs-mode.

Usted puede Personalizarlos (M-xcustomize-groupRET RETpython), o añadir una función personalizada para python-mode-hook. ej .:

(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

sí, creo que 4 es el valor predeterminado, y eso es lo que quiero. Es más una cuestión de usar la sugerencia de Sven y tener algunas herramientas para mover bloques de código con más facilidad ... –

-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)) 

Obviamente estos son ajustes globales para los modos que les hacen honor (que hace pitón-mode). No me volví loco con la configuración de sangría del modo python.