jueves, 4 de octubre de 2018

Usando VIM

Vim es, aunque conocido por lo dificil, también conocido como potente y poderoso editor de texto con fines de programación.

Bien por lo poderoso o lo complicado, hace ya desde algun tiempo que empecé a incursionar en el uso de vim, alternando con otros editores,  por lo que ahora escribo mis experiencias:

Casi todo lo configurable y lo más importante de VIM se puede configurar a traves de  este archivo de configuración:

~/.vimrc

------------------------------------------------------------
filetype plugin indent on
syntax on
set nocompatible
set number  #<-- numera las lineas
set filetype=XML
autocmd BufEnter *.recipe :setlocal filetype=xml
execute pathogen#infect()  #<--carga el instalador de plugins "pathogen"
set laststatus=2  #<-- permite que funcione el plugin light..
map <C-o> :NERDTreeToggle<CR> #<-- mapea a ctrl-o la aparicion del plugin NERDTree
------------------------------------------------------------



Vim tiene, dos o hasta 3 modos de edición, que yo uso asi:
-------------------------------------------------------------------------
Modo Comandos, que es el que abre Vim, o se llama con ESC + :
Modo Insercion (Insert), que se llama cuando estas en modo comando y presionas "i"
Modo Visual que aparece cuando usas el ratón, desde una GUI y con lo que puedes cortar y pegar. En algunos contextos tambien se puede cortar y pegar sin modo Visual.

Los comando son un queso, por lo que hay que buscarlos y memorizarlos, yo (todavía) uso una chuleta que de vez en cuando actualizo y pego en mi monitor:

=====================================================
Chuleta Comandos Importantes de VIM:
-------------------------------------------------------------------------
:set number
:set nonum
:ha!               --> hard copy (imprimir)
:wq               --> guardar y salir
:w archivo.txt  --> guardar con nombre "archivo.txt"
:q!         --> salir sin guardar
u    --> deshacer
p    --> pegar
dd  --> cortar (y borrar) linea
dw --> delete word --> borrar/cortar palabra
37dd --> cortar 37 lineas
yy --> copiar linea
23y(espacio) --> copiar 23 lineas a la derecha
y8(espacio) --> copiar 8 caracteres a la derecha
y6l(espacio) --> copiar 6 car a la izq

:tab archivo.txt    -->  abre una nueva pestaña (tab) con el archivo.txt
:tabnew
gt   --> go tab , siguiente pestaña
:tabc --> tab close
:e archivo.txt  --> cambiar (abrir) a archivo.txt
/palabra --> buscar "palabra" (hacia adelante)
?palabra --> buscar "palabra" (hacia atras)

:vsp archivo.txt  --> split con archivo.txt
:windo diffthis  --> encuentra las diferencias entre las dos ventanas (del split)
ctrl + ww ---> cambia entre ventanas
ctrl + wr ---> intercambia las ventanas (el derecho va a la izq y viceversa)

:%s/^/textoaagregar  --> agregar caracteres o espacios en todas las lineas, bueno para agregar espacios

:125, 189s/^/#  --> agrega el comentario # desde la linea 125 hasta la 188

copiar lineas desde la 81 a a 91:
81,91y

osea que :
%= todos
n-inic, n-fin= rango   
s = linias
/^/# = agregar #

cambiar un texto por otro:
:g/texto_a_sustituir/s//texto_nuevo/g
 
 ó también:
:%s/texto_a_sustituir/texto_nuevo/g 
==============================================


Plugins para VIM
------------------------------------------------------
Además, se puede complementar VIM con plugins que le agregan funcionalidades o lo hermosean, como por ejemplo:
- NERDTree --> agrega un arbol interactivo de directorios y archivos
- lightline --> agrega color funciona la barra de comandos e infos
y asi muchos más que se pueden encontrar en vim-awesome, que es una pagina web dedicada a las herramientas para vim


Estos plugins se pueden installar con varios gestores de plugins. Yo uso pathogen, creo que fortuitamente y no recuerdo ninguna razon especial por la que le haya escojido. Hasta ahora me funciona bien y me parece fácil. Otros gestores son: Vundle, Neobundle und VimPlug.

-- Pathogen instalacion :
----------------------------
Básicamente se trata de copiar el paquete pathogen.vim en la carpeta ~/.vim/autoload
En el apartado instalación de github se explica muy bien:
https://github.com/tpope/vim-pathogen

en resumen:
  mkdir -p ~/.vim/autoload ~/.vim/bundle && \
  curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
y agregar a vimrc. la linea
exit:
  execute pathogen#infect() 

eso es todo!

-- Instalar Plugins NERDTree y lightline con Pathogen:
------------------------------------------------------------------
Para instalar cualquier plugin con Pathogen, basta copiarlo en la carpeta ~/.vim/bundle, esto es lo que hacen los comandos siguientes:

  git clone https://github.com/scrooloose/nerdtree.git ~/.vim/bundle/nerdtree
  git clone https://github.com/itchyny/lightline.vim ~/.vim/bundle/lightline.vim 

--- Trics con NERDTree y Lightline
NT se activa con el comando 
:NERDTree
Pero si lo usas mucho, pronto te fastidiara ese engorroso comando, asi que se puede
mapear a una combinacion de comando, eso es lo que sale arriba en mi ejemplo de .vimrc

Lightline no me funcionó asi nada mas hasta que agregé a .vimrc

set laststatus=2
 
 -- Agregar algo al final de cada linea:
:%norm A algo
 
Explicacion: 
:%norm A*
This is what it means:
% = for every line 
norm = type the following commands 
A* = append '*' to the end of current line

-- Imprimir (en impresora) los numeros de linea:
set number
set printoptions=number:y

 

No hay comentarios:

Publicar un comentario