Tips en el uso de Vim
Seleccionar un texto
Para realizar el proceso de copia y pegar, podemos seleccionar el texto abandonando el modo de inserción y luego utilizar una de las siguientes opciones:
V | Seleccionar lineas enteras |
v | Seleccionar un rango ode texto |
ctrl-v | Seleccionar columnas |
gv | Repetir la seleción del bloque |
Para luego moverse entra las lineas a seleccionar, esto hará que el texto sea resaltado. Despues de haber seleccionado el texto puede usar d para borrar o y para copiar.
Folding
Esta característica permite compactar un bloque de código.
seleccione el bloque, luego :fold
zo | Expande |
zc | Contrae |
Vea :help foldmethod para ver más opciones, use :mkview y :loadview para guardar y recuperar la ventana actual.
Búsqueda
Comados básicos
/cadena | Busca la cadena hacia adelante de la posicion actual |
?cadena | Busca la cadena hacia atrás de la posición actual |
n | Reppite la búsqueda hacia adelante |
N | Repite la búsqueda hacia atrás |
\* | Realiza la búsqueda de la palabra que esta debajo del cursor |
g\* | Busca parcialmente la palabra que esta debajo del cursor |
Variables de interés
:set ignorecase | Insensibilidad a las mayúsculas y minúsculas |
:set smartcase | use case if any caps used |
:set incsearch | Muestra la ocurrencia mientras porcede con la búsqueda |
:set hlsearch | Resalta la cadena encontrada |
Buscar y Reemplazar
:%s/texto a buscar/reemplazar con este/ | Busca en todo el archivo y lo reemplaza |
:%s/texto a buscar/reemplazar con /c | Busca en todo el archivo, pide confirmación y reemplaza |
Identación
Variables de interés
:set tabstop 8 | Colocar el tabulador en 8 espacios |
:set expandtab | No usar el actual caracter de tabulación (ctrl-v) |
:set shiftwidth=4 | Colocar la identación a 4 espacio |
:set autoindent | Activar la autoidentación |
:set smartindent | does the right thing (mostly) in programs |
Identar una línea o un bloque de texto
ctrl-t, ctrl-d | Identar la línea actual (modo insertar) |
> o < | Identar un bloque (en modo visual) |
Pegar texto desde un GUI
Cuando se esta pegando un texto desde una aplicación GUI (por ejemplo un navegador web), misteriosamente Vim inserta espacios extras lo cual hace que el texto incluido pierda su identación. Esto ocurre porque Vim esta realizando un proceso de escritura y no de pegado.
Para evitar la identación cuando se pega un texto con el ratón o con shift-ins, podemos agregar el siguiente comando en el archivo .vimrc:
:set pastetoggle=<f5>
Para pegar el texto sin procesar la identación presionamos F5 en el modo de inserción. También se puede usar el comando `:set paste` para el mismo fin. Para deshabilitarlo usamos `:set nopaste`.
Multiple Ventanas
Comándo básicos
:e nombre_archivo | Editar otro archivo |
:split nombre_archivo | Dividir la ventana y cargar otro archivo |
ctrl-w flecha arriba | mover el curso a la ventana superior |
ctrl-w ctrl-w | Mover el cursor entre las ventanas |
ctrl-w_ | Maximizar la Ventana actual |
ctrl-w= | Igualar el tamaño de las ventanas |
10 ctrl-w+ | Incrementar el tamaño de la ventana en 10 líneas |
:vsplit file | Hacer una división vertical de la ventana |
:sview file | Igual que split pero el archivo es de solo lectura |
:hide | cerra la ventana actual |
:only | Mantener abierta esta ventana solamante |
:ls | Mostrar los buffers |
:b 2 | Abrir el buffer número 2 en esta ventana |
Mapas
El uso de mapas nos permite ahorrar tiempo al momento de escribir texto que se repiten frecuentemente. Por ejemplo :
imap ;pr print();<left><left>
hace que al escribir ;pr sea sustituido por print(); y el cursor se coloca entre los dos paréntesis.
Por lo general estas definiciones se colocan el el archivo .vimrc.
Edición de múltiples líneas
Para insertar una cadena de caracteres en varias líneas de un texto se procede de la siguiente manera:
Texto Original
Linea 1
Linea 2
Linea 3
Linea 4
Linea 5
- Colocar el cursor sobre el primer caracter de la primera línea a editar (en este ejemplo en el espacio en blanco).
- Presionar Ctrl-v para entrar el modo visual en bloque.
- Seleccionar las lineas a editar
- Presionar la tecla I.
- Escribir los caracteres a insertar (en este ejemplo →).
- Presionar la tecla Esc.
El editor insertará la cadena de caractreres en cada linea seleccionada. Es importante señalar que habrá un pequeño retardo parar ver el resultado final.
Texto Modificado
Linea→ 1
Linea→ 2
Linea→ 3
Linea→ 4
Linea→ 5
Ver archivo en Hexadecimal
VIM puede mostrar un archivo en hexadecimal mediante el uso del programa externo xxd, solo hay que ejecutar el siguiuente comandio dentro del editor
!xxd
Para regresar al modo normal se ejecuta:
!xxd -r