Administración de sistemas, Editores de texto

Configurando Vim de manera sencilla

Print Friendly, PDF & Email

Automatismos y otros trucos

Si estás leyendo estas líneas, no hace falta que te explique qué es Vim, cual es su curva de aprendizaje o cuales son sus principales vistudes o defectos.

A los que lo utilizamos de manera habitual y nos hemos preocupado de sacarle partido, se nos hace dificil compararlo con otros editores de texto, salvo quizás eMacs, pero tranquilos, evitaré hacer comparaciones de ese tipo, para no liarla sin necesidad !:-)

Dos de las características que hacen de Vim uno de los mejores editores de textosjamás creados, bajo mi punto de vista son los siguientes:

  1. Portabilidad:Vim, o mejor dicho «vi» se encuentra disponible para todos los sistemas operativos conocidos, en muchos de ellos instalado de serie con el sistema.Eso facilita muchísimo el acceso a nuevos sistemas, por raros que sean, permitiendo reutilizar tus conocimientos del editor en cualquier entorno desde el minuto 0. Muy útil.
  2. Modularidad:Vim dispone de su propio lenguaje de scripting, lo que facilita la creación de scripts, más o menos complejos que aumentan, todavía más, la potencia del editor.Siguiendo las indicaciones de este artículo, vas a tener disponibles más de 5.000 plugins para instalarlos automáticamente.

    En realidad, tedrás otro problema colateral: elegir entre tanta variedad de plugins 🙂

Una vez hecha la introducción, vamos a ver el proceso necesario para poder disponer de un Vim productivo, cómodo y funcional.

Requisitos previos

Esta instalación la voy a hacer utilizando comandos para sistemas derivados de Debian. Con pocas adaptaciones, funcionará en cualquier linux y posiblemente, en cualquier sistema en donde funcione Vim

El objetivo final es conseguir un editor genérico, pero especialmente preparado para los que editamos, en este caso, scripts en python. Partiendo con la misma idea, sólo es cuestión de elegir los mejores plugins para tu lenguaje o lenguajes preferidos.

Paquetes necesarios

apt-get install vim git mercurial exuberant-ctags fontconfig ruby-dev

Fuentes ttf adaptadas

Una vez instalados los paquetes mínimos imprescindibles, procedemos a instalar un grupo de fuentes especialmente modificadas para optimizar su uso en terminales:
cd /tmp && git clone git@github.com:powerline/fonts.git
cd fonts/
./install.sh

Tomemos precauciones

Si estás leyendo esto es porque ya has intentado trastear algo con Vim, en cuyo caso, es posible que ya tengas hechos algunos ajustes en tu sistema. Si no es así, puedes saltarte este punto directamente.

Si has estado trasteando, mi consejo es que guardes tanto el fichero ~/.vimrc como el directorio ~/.vim/

Como me gusta ser muy ordenado y, no puedo hacer las cosas tan sencillitas, voy a hacer el backup de mi instalación local de Vim a mi estilo:
mv ~/.vimrc ~/.vimrc.`date --utc --date='today' +%Y%m%d%H%M`

mv ~/.vim ~/.vim.`date --utc --date='today' +%Y%m%d%H%M`

Sin embargo, si no te quieres complicar la vida, basta con hacer esto:
mv ~/.vimrc ~/.vimrc.bak

mv ~/.vim ~/.vim.bak

La parte importante

Ahora viene la magia, la parte que obra el milagro. Sin embargo, lo que realmente nos interesa es que el invento funcione ya, sin complicarnos la vida. Ya habrá tiempo de estudiar el detalle y comprender todo lo que estamos haciendo.

El fichero .vimrc mágico

A continuación hay que crear el fichero .vimrc:

touch ~/.vimrc

… y a continuación pegar lo siguiente en su interior:


"==================================================="
" Fichero de configuración de .vimrc 
"==================================================="

" vim-addon-manager
" ~~~~~~~~~~~~~~~~~

set nocompatible | filetype indent plugin on | syn on

fun! SetupVAM()
	let c = get(g:, 'vim_addon_manager', {})
	let g:vim_addon_manager = c
	let c.plugin_root_dir = expand('$HOME', 1) . '/.vim/vim-addons'
	let &rtp.=(empty(&rtp)?'':',').c.plugin_root_dir.'/vim-addon-manager'
	" let g:vim_addon_manager = { your config here see "commented version" example and help
	if !isdirectory(c.plugin_root_dir.'/vim-addon-manager/autoload')
		execute '!git clone --depth=1 git://github.com/MarcWeber/vim-addon-manager '
			\       shellescape(c.plugin_root_dir.'/vim-addon-manager', 1)
	endif
    " ATENCIÓN: La siguiente lista de plugins ha de ir en UNA SOLA LÍNEA. Atentos a como se pega.
	call vam#ActivateAddons(["ack","AutoComplPop","closetag","Command-T","ctrlp","ctrlp","fugitive","Git_Branch_Info","Gundo","html5","info","jedi-vim","jinja","journal","L9","nose","pathogen","powerline","pytest","snipmate","snippets","snippets","statusline","surround","Tagbar","The_NERD_tree","vcscommand","vim-autopep8","vim-django-support","vim-easy-align","vim-gitignore","vim-gitgutter","vim-github-dashboard","vim-github-comment","vim-gitmodeline","vim-git-log","vim-htmldjango_omnicomplete","vim-plug", "WebAPI"], {'auto_install' : 0})
    " Hasta aquí. Todo lo que está encima es la línea con los plugins.
endfun
call SetupVAM()


"Pathogen
"~~~~~~~~
" http://codeyarns.com/2010/12/09/how-to-install-vim-plugins-using-pathogen/?relatedposts_hit=1&relatedposts_origin=6340&relatedposts_position=1
"
call pathogen#infect()
call pathogen#helptags()
syntax on
filetype plugin indent on

" Snippets
" ~~~~~~~~
" assuming you want to use snipmate snippet engine
ActivateAddons vim-snippets snipmate

" Vim como IDE para python:
" http://www.sontek.net/blog/2011/05/07/turning_vim_into_a_modern_python_ide.html

" Mapeo para completado 
" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:iabbrev    # http://vim.wikia.com/wiki/Auto_closing_an_HTML_tag

" Mostrar lateral con visor del clases (Yo uso F10)
nmap  :TagbarToggle

" Ver histórico de git:
map g :GundoToggle

" Lanzar el plugin
map n :NERDTreeToggle

if filereadable("~/.vimrc.local")
	source ~/.vimrc.local
endif

Si lo hace bien (copiar y pegar es fácil, ¿no?), habrá magia 🙂

Para comprobarlo, abre una terminal y lanza el Vim. No hace falta que edites ningún fichero. Sólo abrir el Vim.

A partir de ahi, Vim, de manera automágica, deberá comenzar a «autoinstalar» los plugins que figuren en la configuración que le hemos pasado, unas veces tirando de git y otras de curl. El caso es que descargará todos los plugin’s que le digamos y los instalará siempre que pueda. Lo comento así porque hay, o pueden haber, plugin’s, como vim-django o TaskList, que necesiten personalizaciones, o que necesiten determinadas librerías del sistema. En esos casos, lo mejor es eliminarlos de la lista, para no dejar nada a medias, y volver a meterlos cuando tengamos la instalación de Vim ya plenamente operativa.

El listado de plugin’s que he incluido en esta instalación es este:

Plugins

Black hot drink

ack

AutoComplPop

closetag

Command-T

ctrlp

ctrlp

fugitive

Git_Branch_Info

Gundo

html5

info

jedi-vim

jinja

journal

L9

nose

pathogen

powerline

pytest

snipmate

snippets

snippets

statusline

surround

Tagbar

The_NERD_tree

vcscommand

vim-autopep8

vim-django-support

vim-easy-align

vim-gitignore

vim-gitgutter

vim-github-dashboard

vim-github-comment

vim-gitmodeline

vim-git-log

vim-htmldjango_omnicomplete

vim-plug

WebAPI

Reconozco que ¿todavía? no le saco todo el provecho a todos estos plugin’s, pero lo que si puedo asegurar, es que, molestandose en leer, a ratos, toda la información que tienes en tu ~/.vim, vas a conseguir construirte un editor barra IDE a tu medida 🙂

¿Más plugin’s?

Puede que mi selección de plugin’s no sea de tu gusto. O que simplemente, tengas unas necesidades diferentes a las mias…

Si es así, no tiene nada más que hacer esto:

vim ~/.vim/vim-addons/vim-pi/db/vimorgsources.json

… y podrás ver un listado con más de 5.100 plugin’s listos para instalar en, ahora si, tu editor favorito. Tan sólo hace falta incluir el nombre del plugin que quieras instalar en la llamada call de tu archivo ~/.vimrc, junto al listado de módulos ya instalados. Luego, mediante la magia, tan solo reiniciar Vim y el módulo se instalará el solito }:-)

Todavía no está acabado el artículo. En breve, el remate final: Extras, tip’s y trucos para mejorar la experiencia con Vim

El autor de este post es LCabrera, Fué publicado en el blog original el 18 de Diciembre de 2015

Tagged , , ,

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.