lunes, 28 de febrero de 2011

Algunas de Vi: Tabulación, ventanas y pestañas

Tabulación:
Una buena manera para trabajar con tabulaciones en vim es utilizando tabstop, expandtab, softtabstop, shiftwidth; con ello se puede definir si se quiere tener tamaños de tabulación de 8 o 4 columnas; también, se puede intercambiar la tabulación por espacios en blanco.


:set tabstop=4

Esto permite tener una tabulación de 4 columnas.


:set expandtab
:set noexpandtab

Cuando está habilitado cambia las columnas de la tabulación por espacios en blanco.


:set shiftwidth=4

Se habilita la cantidad de columnas a indentar en normal mode (<< >>)


:set softtabstop=4

Define cuantas columnas se insertan en modo insertar; cuando expandtab está habilitado, inserta los espacios en blanco apropiados; cuando expandtab está deshabilitado y tabstop es igual que softtabstop, entonces se utiliza tabs por defecto.

Para que la configuración siempre este disponible, se procede a agregar en el .vimrc:

set tabstop=4 softtabstop=4 shiftwidth=4 expandtab


Control de ventanas
En vim se pueden utilizar varias ventanas al mismo tiempo:

:split test.txt
:sp test.txt

split==sp, sirve para abrir otra ventana horizontalmente.


:vsplit test.txt
:vsp test.txt

vsplit==vsp, sirve para abrir una venta verticalmente


:ctrl-w s

Abre el mismo archivo en una nueva ventana.


:only

Cierra toda las ventanas menos el área de trabajo utilizada en ese instante.


:ctrl-w H|J|K|L

Rota las ventanas izquierda,abajo,arriba,derecha respectivamente.


:ctrl-w +
:ctrl-w -
:ctrl-w =
:ctrl-w _
:ctrl-w |

Permite redimensionar una ventana agrandandola, reduciendola, igualando todas las ventanas, o maximizarla verticarlmente, o maximizarla horizontalmente.



:ctrl-w h|j|k|l

Navega entre las ventanas izquierda,abajo,arriba,derecha respectivamente. Además, se puede mapear estos comandos para simplificarlos en el .vimrc:

map h
map j
map k
map l


Pestañás

:tabedit test.txt
Abre un documento en una nueva pestaña

ctrl-w T
Pone en su propia pestaña la ventana que estaba dividida por vsplit o split.

:tabclose
Para cerrar la pestaña que se está trabajando.

:tabonly
Cierra todas las ventanas menos el área de trabajo que se está ejecutando.


:gt
:gT
:#gt

Sirve para avanzar pestañas, retroceder pestañas, ir a una pestaña específica respectivamente.

:tabmove #
Mueve el tab a la posición indicada '#==[0-9]'.