Encontré una página donde resumen perfectamente la configuración que me gusta usar. Acá va mi .vimrc:
syntax on
set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4
set background=dark
set autoindent
autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class
Espero que a alguno le sirva. Por lo pronto espero acordarme que ahora dejo acá también esta configuración.
12 comentarios:
tordek, antes que nada, gracias por tu comentrio.
Entiendo tu indignación por el uso de espacios en vez de tabs. De hecho esta debe ser una de las primeras guerras santas de la historia informática :)
No tengo una posición definida al respecto, simplemente me adapto a las necesidas/situaciones. Si tenes un buen editor es casi lo mismo usar una y otra opción.
En el caso de Python en particular, la recomendación para el estilo de programación es usar cuatro espacios en vez de tabs. Herejía o no, es es el estandar propuesto. Me parece que se basan principalmente en que los espacios son más 'portables': generan menos errores al copiar y pegar en mails, html, etc; y en un lenguaje como Python donde la indentación es parte de la sintaxis, esto es bastante importante.
De la especificacón:
Indentation
Use 4 spaces per indentation level.
For really old code that you don't want to mess up, you can continue to
use 8-space tabs.
Tabs or Spaces?
Never mix tabs and spaces.
The most popular way of indenting Python is with spaces only. The
second-most popular way is with tabs only. Code indented with a mixture
of tabs and spaces should be converted to using spaces exclusively. When
invoking the Python command line interpreter with the -t option, it issues
warnings about code that illegally mixes tabs and spaces. When using -tt
these warnings become errors. These options are highly recommended!
For new projects, spaces-only are strongly recommended over tabs. Most
editors have features that make this easy to do.
Podés leer la especificación completa en http://www.python.org/dev/peps/pep-0008/
PD: A veces la gente tiene sus motivos para pensar diferente a vos. No seas tan intolerante ;)
Tordek despues de ver la respuesta que te ha dado gabriel solo te puedo decir una cosa ..." En tu puta cara"...
Yo cambié los tabs por espacios para programar en PYthon tal y como tu indicas y me encontré ante el problema de que los archivos Makefile necesitan tabs reales. La solución se presentó inicialmente como cambiar el .vimrc para poder editar Makefiles...
La solución final es definir un .vimrc un poquito más profesional:
autocmd FileType make set sr noexpandtab ts=8 sw=8 "archivos make
autocmd FileType python set sr et ts=4 sw=4 softtabstop=4 "archivo python
Si te fijas, da lo mismo poner, por ejemplo tabstop que ts... cada día me sorprendo más de las posibilidades de VI :D
Impresionante con la keyword configurar vim para python apareces primero.
Grande Patinio!
yo quiero revivir el flame ;)
@Tordek así como tu tienes el derecho a usar tab de 200 yo tengo derecho a formatear mi código como se me antoja y
si no te gustan los espacios pues no leas mi código
Jaja... si así no revivís un flame, es porque ya nadie lo lee :D
Vengo a apagar el flame, entonces. Ni me acordaba de este thread.
Sigo prefiriendo los tabs sobre los espacios... cuando se puede, claro...
Es una lástima que muchos no entienden (y, bueno, desgraciadamente es dificil configurar el editor para que haga lo correcto) cómo usar tabs y espacios juntos (dicese, tabs para indentar, espacios para alinear (Y ESTO NO ES MEZCLAR)), haciendo que "solo espacios" sea la opción más accesible...
Ahora prefiero que el PEP diga "solo espacios" a que no dijera nada (y ahora entiendo por qué dice "tabs de 8 espacios").
Publicar un comentario