La configuración para Vim definitiva

Seguramente todos debéis conocer Vim, a mi parecer el mejor editor de texto para GNU/Linux. Las primeras veces que usé Vim me pareció muy complicado, pero desde que administro el servidor dedicado de mi blog personal, se ha convertido en mi editor por defecto, incluso para programar, en este artículo veremos cómo aplicar la configuración definitiva para Vim gracias a un repositorio que encontré en GitHub.

Como es habitual en el mundo del software libre, Vim posee una gran capacidad de configuración y personalización. Así que decidí buscar en la red configuraciones que facilitaran la tarea de programar y me topé con un repositorio en GitHub creado por Amix, que durante 8 años ha estado usando y modificando Vim para obtener un vimrc definitivo. El repositorio en cuestión lo podéis encontrar aquí, veamos cómo instalarlo.

En el proceso de instalación será necesario usar Git, si no estás acostumbrado a este programa puedes echar un vistazo a esta chuleta de comandos para Git

Versión básica o versión “Awesome”

Es posible elegir entre dos versiones, una básica que no instalará ningún plugin, u otra mucho más completa que hará de Vim un editor muy potente.

Para instalar la básica basta con ejecutar el comando siguiente:

$ git clone git://github.com/amix/vimrc.git ~/.vim_runtime
$ sh ~/.vim_runtime/install_basic_vimrc.sh

Y para la avanzada o “Awesome”:

git clone git://github.com/amix/vimrc.git ~/.vim_runtime
sh ~/.vim_runtime/install_awesome_vimrc.sh

El vimrc para la versión “Awesome” es como sigue:

set runtimepath+=~/.vim_runtime

source ~/.vim_runtime/vimrcs/basic.vim
source ~/.vim_runtime/vimrcs/filetypes.vim
source ~/.vim_runtime/vimrcs/plugins_config.vim
source ~/.vim_runtime/vimrcs/extended.vim

try
source ~/.vim_runtime/my_configs.vim
catch
endtry

Para añadir nuestras propias configuraciones hemos de editar el fichero ~/.vim_runtime/my_configs.vim.

Editar la configuración por defecto

En la instalación el esquema de colores por defecto se establece a peaksea, es posible cambiar los colores usados para resaltar la sintaxis por Vim editando el fichero ~/.vim_runtime/my_configs.vim y añadiendo la siguiente línea:

colorscheme peaksea

Hay que reemplazar peaksea por cualquiera de estos otros 3 esquemas de colores:

  • solarized
  • pyte
  • ir_black

Posibles problemas con el fondo transparente

Es posible que al instalar esta configuración para Vim perdamos el fondo transparente de la terminal y veamos vim de la siguiente forma:

La configuración para Vim definitiva

Para solucionar el problema es necesario añadir las siguientes líneas al archivo ~/.vim_runtime/my_configs.vim:

hi NonText ctermfg=18 ctermbg=NONE cterm=NONE
hi Normal ctermfg=16 ctermbg=NONE cterm=NONE
hi Special ctermfg=Yellow ctermbg=NONE
hi Comment ctermfg=DarkYellow ctermbg=NONE
hi Constant ctermfg=Blue ctermbg=NONE
hi Number ctermfg=Yellow ctermbg=NONE
hi LineNr ctermfg=DarkGrey ctermbg=NONE
hi PreProc ctermfg=Green ctermbg=NONE
hi Statement ctermfg=Cyan ctermbg=NONE
hi Type ctermfg=Cyan ctermbg=NONE
hi Error ctermfg=Red ctermbg=NONE
hi Identifier ctermfg=Magenta   ctermbg=NONE
hi SpecialKey ctermfg=Cyan ctermbg=NONE
hi NonText ctermfg=Blue ctermbg=NONE
hi Directory ctermfg=Blue ctermbg=NONE
hi MoreMsg ctermfg=Green ctermbg=NONE
hi Title ctermfg=Magenta ctermbg=NONE
hi WarningMsg ctermfg=Red ctermbg=NONE
hi DiffDelete ctermfg=Blue ctermbg=NONE

Lo cual elimina el fondo negro (ctermbg=NONE) de todas las palabras clave del lenguaje de programación y de los sitios en los que no haya texto (NonText).

Estos parámetros se basan en el esquema de colores peaksea, simplemente he modificado el atributo ctermbg para establecer el color de fondo a ninguno. Si elegís otro esquema de colores deberéis buscar su configuración por defecto, copiarla y pegarla en vuestra configuración estableciendo ctermbg a NONE

Otras modificaciones

Personalmente me gusta resaltar la línea actual con la siguiente apariencia:

hi CursorLine guifg=NONE guibg=#121212 gui=NONE ctermfg=NONE ctermbg=NONE cterm=BOLD
hi CursorColumn guifg=NONE guibg=#121212 gui=NONE ctermfg=NONE ctermbg=NONE cterm=BOLD

Tras aplicar todos estos cambios, el aspecto de Vim es el siguiente:

La configuración para Vim definitiva21

Conclusión

Este ha sido mi primer artículo como colaborador en DesdeLinux, espero que os haya resultado de utilidad. ¿Conocíais esta configuración para Vim?. ¿Qué personalizaciones le habéis hecho? Dejad un comentario!.


47 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   elav dijo

    Yo era de los que aborrecía VIM, decía que era un editor de texto para Pulpos.. pero de un tiempo para acá lo uso más que Nano (el otro editor, no el eNano de nuestra comunidad) xDD

    1.    Alejandro Alcalde dijo

      A mi me pasaba un poco igual que a tí, viendo que Vim era algo más complicado usaba Nano, hasta que me esforcé por acostumbrarme a Vim y se convirtió en mi editor por defecto. Saludos!

      1.    elav dijo

        Así es.. por cierto, un placer tenerte por acá.. Bienvenido!

        1.    Alejandro Alcalde dijo

          Gracias, espero poder contribuir con artículos de calidad. Saludos!

    2.    elhui2 dijo

      Yo siempre use Vi, ahi modificaba mis scripts COBOL (mi primer trabajo a los 17) xD nunca use otro por pereza pero me acomode muy bien, y tienen atajos increibles!
      Saludos.

    3.    Manuel de la Fuente dijo

      Pues que yo sepa los dos son Nanos y son Editores, así que sigo sin saber a cuál usas… o quizás también a ambos los usas. xD

      1.    eliotime3000 dijo

        El GNU Nano es un software, mientras que el nano que está en esta comunidad es un alias de una persona.

  2.   nano dijo

    Dejen de usar mi nombre coño, se gasta xD

    1.    elav dijo

      El eNano con Windows XP.. WTF?

      1.    nano dijo

        Estaba en la uni u.u

        1.    Ángel Isaac Pizano dijo

          ¡Pretextos!, ¡Te fuiste al lado oscuro! XD
          Y con respecto al post… Creo que debo de aprender a usar Vim o_o

          1.    eliotime3000 dijo

            Yo estoy tanto en Windows Vista como en Debian Wheezy, así que no se quejen si comento con Google Chrome 30 (en realidad, es Chromium 30) con Vista.

        2.    eliotime3000 dijo

          I know that feel, bro.

    2.    eliotime3000 dijo

      Por algo es que cuando hablo de GNU Nano, escribo GNU Nano (no nano a secas por la ambigüedad que genera tu alias).

  3.   Leo dijo

    Solo los que son suficientemente dignos pueden usar Vim (lo cual no me incluyo).
    Es re-complicado, pero es obvio que es mejor editor, todos hablan muy bien de él.

  4.   abimaelmartell dijo

    Yo tengo rato usando VIM, aqui les dejo mi config que uso en Ubuntu y OSX
    https://github.com/abimaelmartell/dotfiles

  5.   Rots87 dijo

    yo no entiendo a vim… he intentado pero siempre vuelvo a nano la falta de costumbre supongo pero me cuesta 🙁

    1.    elav dijo

      Créeme, cuando te adaptas se hace indispensable. Eso de poder copiar/mover/cambiar texto, borrar o editar texto en columna.. en fin, cuando no se tiene interfaz gráfica VIM es genial.. y aún con interfaz gráfica es genial 😀

      1.    petercheco dijo

        Cuando no hay entorno lo mejor es MC (Midnight commander)

      2.    Giskard dijo

        Yo hago todo eso en Geany. No veo por qué aprender cosas complicadas. Siempre he pensado que es el software el que debe adaptarse a los seres humanos y no al revés. Pero bueno, el mundo es libre… por el momento.

        1.    RAW-Basic dijo

          Qué tal?.. ..tengo que disentir con tu comentario.. ..no me parece justo que pienses de forma generalizada que un determinado software no se adapte a ´los seres humanos´.. ..simplemente porque las necesidades y perspectiva de cada uno..varía, y en algunos casos mucho..

          Para algunos lo mejor es el editor nano, yo no lo soporte ni para el más mínimo cambio.. ..algunos les gusta geany, ninjaIDE, eclipse..y yo prefiero alguno u otro dependiendo el caso.. ..otros emacs, yo Vi..

          Cosas que parecen complicadas de aprender, aunque no siempre, suelen tener sus beneficios.. ..para altos volúmenes de datos de un archivo, y me refiero a realmente altos (TBs)..algunos editores ni te lo dejarían abrir.. ..y con Vi no sólo lo podría abrir..sino que podría hacer un manejo complejo a través de expresiones regulares..

          Tan sólo mi opinión.. ..espero sepas entender..

          1.    Giskard dijo

            A ver, en casi todos los editores que he usado guardas con Ctrl+S (Save) y sales con Ctrl+Q (Quit). Y te mueves con la convenientes teclas de cursores que tienen unas flechitas. Dime cómo se hace en vim? 😉
            Entiendo tu opinión, tranquilo.

          2.    RAW-Basic dijo

            Em.. ..simple.. ..para moverte lo podés hacer tanto con las flechitas..como con las teclas ‘HJKL’..normal en los vi-like..

            Para guardar y salir ‘:wq’.. 😉

            Dale una oportunidad a aprender a manejarte con vim.. ..con pero probarlo por una semana..sólo usando vim.. ..cuando aprendas las herramientas, la rapidez que te proporciona es inmensa..

  6.   Yukiteru dijo

    Tendré que probarlo con la mente abierta, porque la verdad las veces que le he invocado para realizar alguna edición simplemente me desespera, y termino usando nano.

  7.   freebsddick dijo

    yo feliz con emacs

    1.    eliotime3000 dijo

      En eso te apoyo, ya que GNU Emacs es prácticamente una navaja suiza a la hora de editar textos y scripts. Si uno quiere googlear o administrar su correo. Emacs con un par de plugins lo puede hacer y bien.

    2.    pandev92 dijo

      Yo feliz con monodevelop

      TROLLING OFF

  8.   RAW-Basic dijo

    Wenas.. ..primero que nada, buenísimo que te hayas decidido a aportar..y más aún con semejante post.. ..muchas gracias!!..

    Hace tiempo que venía buscando algo semejante..para empezar a utilizar más seguido Vim.. ..aunque siempre usé Vi.. ..para proyectos grandes, lo ideal es tener una buena config y acomodarse en Vim.. ..de nuevo, gracias.. ..y nos seguimos leyendo.. 😉

  9.   eliotime3000 dijo

    Tendría que instalar Vim antes de emitir un juicio ciego. Por ahora estoy usando GNU Nano y GNU Emacs.

  10.   David Gómez dijo

    La configuración esta genial Alejandro… Sin embargo, los esquemas de colores están terribles. No se si depronto conoces donde se pueden encontrar esquemas de colores más atractivos. A mi personalmente me gusta mucho el esquema Twilight de Textmate.

    1.    Alejandro Alcalde dijo

      Si no te gustan ninguno de los esquemas de colores que vienen en el repositorio, puedes probar a instalar cualquier otro, o modificar los colores a tu gusto editando estos los valores de ctermfg.

      hi NonText ctermfg=18 ctermbg=NONE cterm=NONE
      hi Normal ctermfg=16 ctermbg=NONE cterm=NONE
      hi Special ctermfg=Yellow ctermbg=NONE
      hi Comment ctermfg=DarkYellow ctermbg=NONE
      hi Constant ctermfg=Blue ctermbg=NONE
      hi Number ctermfg=Yellow ctermbg=NONE
      hi LineNr ctermfg=DarkGrey ctermbg=NONE
      hi PreProc ctermfg=Green ctermbg=NONE
      hi Statement ctermfg=Cyan ctermbg=NONE
      hi Type ctermfg=Cyan ctermbg=NONE
      hi Error ctermfg=Red ctermbg=NONE
      hi Identifier ctermfg=Magenta ctermbg=NONE
      hi SpecialKey ctermfg=Cyan ctermbg=NONE
      hi NonText ctermfg=Blue ctermbg=NONE
      hi Directory ctermfg=Blue ctermbg=NONE
      hi MoreMsg ctermfg=Green ctermbg=NONE
      hi Title ctermfg=Magenta ctermbg=NONE
      hi WarningMsg ctermfg=Red ctermbg=NONE
      hi DiffDelete ctermfg=Blue ctermbg=NONE

      Saludos.

  11.   Ender Fletcher dijo

    Que tal. buen articulo. seria bueno publicar algo sobre como sacarle provecho a esta config. Para aquellos usuarios no tan expertos en vim como yo 🙂

  12.   juank dijo

    Muy interesante y agradecido, mejora bastante el uso de vim, pero como colocas los numeros de las lineas?, es lo unico que no he logrado conseguir.

    Gracias por el aporte

    1.    David dijo

      :set number

      1.    RAW-Basic dijo

        Abreviado ‘:set nu’ .. ..y para sacarlo ‘:set nonu’ 😉

    2.    Alejandro Alcalde dijo

      Yo uso esta:

      :set nocompatible ruler laststatus=2 showcmd showmode number

      Y para resaltar la línea actual es necesario :set cursorline.

      Se me olvidó, un saludo.

  13.   kik1n dijo

    Vim, la mejor arma para un usuario de Linux&Unix. Lo mejor de todo, puedes moldear a tu gusto vim, el mio es un IDE de C/C++, NERDTree.

  14.   seachello dijo

    Buen aporte!

    Yo sin ser un usuario experto y sin sacarle todo el jugo que tiene vim, he llegado a acostumbrarme bastante y lo uso como editor principal. Creo que lo mejor para empezar a acostumbrarse, ya que puede llegar a desesperar al principio, es realizar el tutorial que viene con el programa (usar el comando «vimtutor»). Así lo hice yo y me ayudó. Mientras lees el tutorial usas vim a la vez.

  15.   Ezequiel dijo

    Hola comunidad, yo uso vim y como muchos de ustedes me resulta una herramienta infaltable para mi trabajo. Quería aportar un tip muy útil para manejar la instalación de plugins. La herramienta se llama «pathogen». Este plugin maneja los paths para los diferentes plugins, haciendo que la instalación y desinstalación de los mismos sean muy sencillos. Si usás vim, tenés que utilizar esta herramienta. Otro tip: en la página vimbits.com hay un montón de maps y configuraciones muy interesantes. Y para los que utilicen Python, les recomiendo el plugin python-mode. Espero que les sirva como a mí.
    Usemos Linux.
    🙂

  16.   Dante Mdz. dijo

    Aun no he usado Vim, me esta dando mucho curiosidad. Tengo que probarlo, pero ¡Ya!

  17.   Mauricio dijo

    Concuerdo con mucho aqui.

    Recuerdo, que los primeros dias intentaba usar vim y siempre lo dejaba, porque me parecia complicado usarlo, hasta que un dia empeze a hecharle ganas y pude entender un poco su funcionamiento.

    Desde ahi, se combirtio en mi editor de texto favorito, cuando tengo que editar un archivo rapido en la consola.

    Por cierto, buen articulo.

    1.    Alejandro Alcalde dijo

      Gracias, me alegra que haya sido un artículo interesante.

      Saludos.

  18.   Dry0Gut dijo

    … muy bueno el post, me gusta mucho vim lo uso para programar pues para configurar arch siempre he tenido algunas dificultades pero es cuestion de practica. Este post a dia de hoy no esta desactualizado.

    Saludos!!!

  19.   Dry0Gut dijo

    que tal, tengo el problema que este enlace esta roto, alguien me podria decir cual esta funcionando ahora. Por el momento estoy probando unos que recomiendan pero quisiera saber su opinion… Gracias!!

    Saludos!!!

  20.   Dry0Gut dijo

    source ~/.vim_runtime/vimrcs/plugins_config.vim

  21.   Dry0Gut dijo

    … he tenido problemas con el archivo de registro del plugin yankring al intentar crear el archivo de registro yankring_history_v2.txt. Alguna idea que me puedan facilitar de como solucionarlo…

    Saludos!!

  22.   Anonymous dijo

    Me gusta tu blog.
    Solo quiero decirte que tienes los enlaces a las imagenes rotos.