VIMVim es un editor de texto disponible para instalar en GNU/Linux. Llevo poco tiempo de usarlo y en un comienzo me parecía bastante complejo de manejar, pensaba que no valía la pena cambiarlo por sublime-text, pero después de hacer algunas configuraciones se a convertido en el editor que mas utilizo. Espero que con este post se animen a probarlo para que puedan ver el potencial de este editor!.
La configuración que veremos a continuación es ideal si buscas comenzar a usar este potente editor, si ya llevas tiempo usando VIM posiblemente no encuentres nada nuevo!
Instalación:Ejecute el siguiente comando para instalar vim en GNU/Linux (Debian):
$ sudo apt-get install vim
CitarAl terminar la instalación te recomendaría iniciar vimtutor, es una pequeña guía sobre el manejo y uso básico de vim. Para iniciar vimtutor ejecute:
$ vimtutor
Configuración:Ahora que tienes las bases del uso de vim, podemos iniciar con las configuraciones del editor para eso crearemos un directorio con el nombre .vim y dentro del mismo un archivo con el nombre vimrc
$ mkdir ~/.vim && touch ~/.vim/vimrc
Temas:(https://qwartz.github.io/blog/images/2017/06/hybrid.png)
Es posible cambiar el tema de vim (esquema de colores) en mi caso utilizo hybrid (https://github.com/w0ng/vim-hybrid), puedes entrar en la pagina: vimcolors.com (http://vimcolors.com) y ver la gran variedad de temas que existen. En caso que quieras configurar un tema, primero debemos crear el directorio ~/.vim/colors, y dentro guardar el tema que hayas elegido.
~/.vim/
|- vimrc
|- colors
|- hybrid.vim
Ahora que tenemos el tema dentro de la carpeta colors vamos a editar el archivo vimrc, ejecutamos:
$ vim ~/.vim/vimrc
Como podemos ver el archivo esta en blanco, vamos agregar las siguientes lineas:
set background=dark
colorsheme hybrid " Tema
syntax on " Color-syntax
set number " No. de colum.
Ahora que hemos agregado esta pequeña configuración, guardamos presionando:
:wq, Al abrir vim nuevamente observaremos que la apariencia a cambiado, ahora tenemos diferente el tema de vim (
set background=dark, colorcheme hybrid), también aparece el numero de columnas del archivo (
set number), si editamos un archivo, por ejemplo: vim foo.py, notaremos un coloreado en syntaxis (
syntax on)
PluginsExiste una gran cantidad de plugins que nos ayudan a mejorar el uso de vim, estos son algunos de los que tengo instalados actualmente:
- NERDtree (Mostrar árbol de directorio)
- auto-paris (Automáticamente crea dos: {}, [], (), "", '')
Instalación de plug-vimPara poder instalar plugins de una manera sencilla haremos uso de: Github: vim-plug (https://github.com/junegunn/vim-plug), para instalarlo debemos ejecutar el siguiente comando (
En caso de tener algún problema visite la pagina del proyecto en Github)
$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
Una vez instalado veremos que se han agregado las carpetas: autoload, plugged
~/.vim/
|- vimrc
|- colors/
|- plugged/
|- autoload/
|- plug.vim
Instalación de pluginsAhora bien para empezar a instalar plugins debemos editar el archivo vimrc, de la siguiente manera:
" PLUGINS
call plug#begin('~/.vim/plugged')
Plug 'usuario/repositorio'
call plug#end()
Como podemos observar debemos ir agregando cada uno de los plugins que deseemos agregar, para instalar los dos plugins que te mencione anteriormente quedaría del siguiente modo:
" PLUGINS
call plug#begin('~/.vim/plugged')
Plug 'jiangmiao/auto-pairs'
Plug 'scrooloose/nerdtree'
call plug#end()
Entonces le hemos indicado el nombre_usuario/nombre_repositorio donde esta alojado el plugin, ahora solo guardamos los cambios y ejecutamos el siguiente comando en vim para que inicie la instalación:
:PlugInstall(https://qwartz.github.io/blog/images/2017/06/PlugInstall.png)
VimrcYa hemos trabajado un poco con el archivo vimrc, pero aun podemos agregar mas configuraciones para mejorar la experiencia con este editor de texto.
GeneralVamos agregar lo siguiente (dentro del codigo esta un comentario indicando para que es cada linea):
" ---------------------------------------------
" General
" ---------------------------------------------
set nocompatible " Activar valores por defecto de Vim, en lugar de los de Vi
set history=1000 " Activar historial de 1000 lineas
" No generar backup, archivo .swp
set noswapfile
set nobackupa
"
set autoindent " Indentado de la linea igual que la anterior
set expandtab " Convertir tab en espacios
set shiftwidth=4 " Cambiar tab de 8 espacios a 4
set softtabstop=4
InterfazVamos agregar lo siguiente (dentro del codigo esta un comentario indicando para que es cada linea):
" ---------------------------------------------
" Interfaz
" ---------------------------------------------
set background=dark " Fondo de vim
colorscheme hybrid " Tema (Esquema de colores) para vim
syntax on " Activar color de syntax
set number " Mostrar el No. de colum.
" Ecxelente para copiar/pegar lineas de texto/codigo
set relativenumber " Mostrar No. de colum. relativamente
" Ayuda a identificar la ubicacion exacta del cursor
set cursorline " Mostrar linea en linea
set cursorcolumn " Mostrar linea en columna
set showmatch " Mostrar incio/fin de un parentecis
set mouse=a " Activar en uso del mouse en vim
set ruler " Mostrar en la parte inferior derecha medida de archivo en %
set laststatus=2 " Mostrar barra de status
set wildmenu " Mostrar barra de autocompletado
Mapeo de ComandosVamos agregar lo siguiente (dentro del codigo esta un comentario indicando para que es cada linea):
let mapleader="," " Establecer ',' como tecla lider
"
" NERDTree
nmap <Leader>nt :NERDTreeToggle<CR> " Cambiar comando ':NERDTreeToggle<Enter>' por ',' + nt<Enter>
let NERDTreeQuitOnOpen=1
let NERDTreeWinSize=20
"
" Con la tecla F5 activamos/desactivamos el No. de colum. de modo: relativenumber
nmap <F5> :set invrelativenumber<CR>
imap <F5> <ESC>:set invrelativenumber<CR>a
"
" Redimencionar paneles de una ventana con las teclas: j, k, l, h
nmap j :res +2<CR> " Aumentar horizontal
nmap k :res -2<CR> " Disminuir horizontal
nmap l :vertical res +2<CR> " Aumentar vertical
nmap h :vertical res -2<CR> " Disminuir vertical
"
" dividir ventana
nmap <Leader>h :split<CR> " ',' + h<Enter> para divir ventana de manera horizontal
nmap <Leader>v :vsplit<CR> " ',' + v<Enter> para divir ventana de manera vertical
ConclusiónEsta es una buena configuración inicial para empezar a usar VIM, con el tiempo puedes ir agregando nuevos plugins, temas, comandos, etc. Espero que este post te sea de ayuda para comenzar a usar esta potente herramienta. Seria bueno que en los comentarios dejaras los plugins que utilizas, la config. de tu vimrc, etc.
Gracias por leer!
CitarDotfiles:
Me eh creado un repositorio en Github con mis 'dotfiles' donde se incluye esta configuración de vim, usted puede acceder al repositorio, clonarlo y ejecutar el archivo install.sh automáticamente se instalara: tema, plugins, vimrc, etc.
ADVERTENCIA: Es posible que este repositorio cambie y se agreguen algunas cosas que no sean de VIM, sea cuidadoso antes de instalar!
$ git clone https://github.com/qwartz/dotfiles.git && cd dotfiles
$ chmod +x install.sh && ./install.sh
Fuente: Blog_qwartz_ (https://qwartz.github.io/blog/)
@kid_gith (https://underc0de.org/foro/profile/kid_goth/) Gracias por leer! Espero le haya sido de utilidad, si encuentra algo nuevo (plugins, config. en vimrc, etc.) espero nos lo comparta! :)
Interesante. A veces siento que nano me está quedando chico, así que no sería mala idea instalar y probar este editor. Saludos...