domingo, 6 de enero de 2008

Configurando vim para Python

Este post es más que nada un ayuda memoria personal, ya que mil veces configuré el vim para programar en Python, y mil veces termino perdiendo la configuración por descuido, reinstalaciones, etc.

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:

  1. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  2. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  3. 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 ;)

    ResponderBorrar
  4. Tordek despues de ver la respuesta que te ha dado gabriel solo te puedo decir una cosa ..." En tu puta cara"...

    ResponderBorrar
  5. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  6. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  7. Este blog ha sido eliminado por un administrador de blog.

    ResponderBorrar
  8. 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

    ResponderBorrar
  9. Impresionante con la keyword configurar vim para python apareces primero.

    Grande Patinio!

    ResponderBorrar
  10. 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

    ResponderBorrar
  11. Jaja... si así no revivís un flame, es porque ya nadie lo lee :D

    ResponderBorrar
  12. 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").

    ResponderBorrar