2011-07-13 13 views
10

Estoy trabajando con un grupo de programadores de Python que usan vim y hacen que Python use TAB para sangría. Yo uso Emacs con el modo python, que traduce la tecla tab a 4 espacios (como debería, pero no importa). Como no quiero causar problemas, quiero agregar algo a mi archivo .emacs (o lo que sea) para hacer sangrías usando TABS reales en lugar de traducirlas a espacios. ¿Cómo?¿Cómo hacer que el modo Emacs Python genere TABs para sangría?

Lo siento si esto se responde en otro lugar: no lo encontré.

+4

no se preocupe, hay un círculo especial de demonios para este tipo de individuos, también. – Evpok

+0

¡Deja de trabajar con esos tipos! ;-)) –

+1

¿Desde cuándo era "tab" un acrónimo? – BoltClock

Respuesta

10

puede definir la configuración específico de Python en su ~/.emacs con python-mode-hook. Con el fin de utilizar pestañas para el sangrado, que puede usar:

(add-hook 'python-mode-hook 
    (lambda() (setq indent-tabs-mode t))) 

Desde python.el guiones sólo 4 columnas, de forma predeterminada, lo anterior se utilice pestañas cuando el guión es un múltiplo de 8 y fichas seguido de espacios para otros guiones .

Si necesita utilizar una sola pestaña para cada nivel de sangría, también deberá establecer python-indent en 8. Luego puede establecer tab-width en el ancho que desee que aparezcan las pestañas.

(add-hook 'python-mode-hook 
    (lambda() 
    (setq indent-tabs-mode t) 
    (setq python-indent 8) 
    (setq tab-width 4))) 
+0

Intenté poner esto en varios lugares y no puedo hacerlo funcionar. La instalación de mi emacs parece estar usando "python.el.gz", que pensé en hackear. ¿Debería obtener python-mode.el en su lugar? –

+0

@ Aaron: Probablemente lo hiciste funcionar, pero desde Python.el único sangra 4 columnas por nivel, por defecto, aún no veías el uso de pestañas. Actualicé la respuesta con más explicaciones. – jamessan

1

probable que tenga que hacer esto en modo Python:

(setq indent-tabs-mode t) 
0

Como los comentaristas al puesto dicho correctamente, el uso de pestañas para el sangrado es una mala idea, y usando un tamaño de la pestaña no estándar que es aún peor. No obstante, a veces no tienes otra opción si quieres colaborar.

Dependiendo de exactamente cómo sus colegas han configurado vim, es posible que necesite tanto su vez en indent-tabs-mode y establecer tab-width a 4.

Una manera conveniente de hacer esto, que no ensuciará su otro trabajo , es usar file local variables. Al final de cada archivo infractor, ponga esto:

# Local Variables: 
# indent-tabs-mode: 1 
# tab-width: 4 
# End: 

(. Vas a tener que decirle a Emacs que indent-tabs-mode es una variable local seguro)

+1

personalmente, no me gustan las variables locales de archivos, especialmente si está colaborando. imagínese cómo se vería el archivo si cada usuario utilizara un editor diferente, y todos consideraron apropiado incluir diferentes blurbs para su editor personal. blech. – jtahlborn

+0

¡PERO las configuraciones de formato son correctas para colocar en el archivo! ¿Votas por romper el estilo? – gavenkoa

Cuestiones relacionadas