vi es un clásico editor en ambientes tipo UNIX cuya prioridad es la eficiencia. Por lo mismo no requiere el uso de ratón sino de breves comandos que a medida que se memoricen y usen harán más rápida la edición de textos.
Para editar un archivo (digamos ma.txt
)
con el editor vi, teclee desde un
intérprete de comandos:
$ vi ma.txt
Cuando vi cargue, se observará en la pantalla una parte del archivo de texto que va a editar. Al arrancar vi, está en un modo especial llamado modo comando
ó modo normal
. Esto significa, por ejemplo, que si presiona l en el teclado, en vez de introducir una l en la posición actual del cursor, el cursor se va a mover un caracter a la derecha. En este modo, los caracteres del teclado sirven para enviar comandos a vi.
Para mover el cursor, pulse las teclas: h (mueve a la izquierda), j (mueve hacia abajo), k (mueve hacia arriba), l (mueve a la derecha).
Las teclas h, j, k y l son prácticas porque una vez acostumbrado a ellas, será capaz de moverse por el archivo sin tener que retirar los dedos de la posición natural del teclado.
Este modo es para introducir texto, es decir lo que vaya tecleando podrá verlo en la pantalla, en el lugar donde estaba el cursor. Veamos algunas utilidades para este modo:
Puede insertar texto con varias teclas:
Inserta texto antes del caracter sobre el cual está el cursor.
Inserta texto después del caracter sobre el cual está el cursor.
Inserta texto al comienzo de la línea en la que está el cursor.
Inserta texto al final de la línea en la que está el cursor.
Abre espacio para una nueva línea después de la línea en la que está el cursor y permite insertar texto en la nueva línea.
Análogo al anterior, pero abre espacio en la línea anterior.
Debemos estar en modo comandos. Pulsar ESC para pasar de modo inserción a modo comandos.
Mover el cursor y colocarlo sobre el caracter que va ser borrado y pulsar x.
Digitar dw para borrar hasta el final de la palabra. Y digitando dd se borra la línea entera.
Pulse la tecla ESC (para asegurarse de que está en modo normal).
Escriba :q! y ejecute ENTER para salir de vi sin guardar ningún cambio que se haya hecho.
Para guardar los cambios realizados y salir, escriba :wq y ejecute ENTER.
Para guardar los cambios realizados sin salir de vi y seguir trabajando, escriba :w y ejecute ENTER.
Estando en el modo normal, pulsamos el comando : para pasar al modo línea de comandos y el cursor se traslada a la última línea de la pantalla. Allí escribimos el nombre del comando y pulsamos ENTER para ejecutarlo.
Aviso | |
---|---|
Recuerde: Para pasar de modo inserción a modo comando pulsamos la tecla ESC. Puede desplazarse sobre el archivo, empleando las flechas, PgUp, PgDn ó bien para mantener los dedos mejor posicionados en el teclado puede emplear las teclas h, j, k y l, como lo vimos anteriormente. |
En su sistema puede haber diversas versiones de vi, recomendamos vim que ofrece extensa ayuda y cuenta con varias extensiones.
En el modo visual ''resaltamos" el texto para ser eliminado o copiado para luego pegarlo.
Asegúrese que esté en modo comandos. Pulse v para entrar en modo visual. Mueva el cursor con las teclas de desplazamiento para resaltar o remarcar el texto a copiar.
Pulse y para copiar la sección remarcada. Si desea cortar digite d .
Ahora ubica el cursor en el lugar donde desea insertar el texto copiado o cortado y pulsa p para insertar el texto, después del cursor.
Útil para producir caracteres del español, si el teclado
o la configuración del mismo no lo permiten. Presione
Control-K y después una secuencia de dos
teclas de acuerdo al caracter, e.g 'a produce á, n? produce
ñ, u: produce ü, !I produce ¡, ?I produce ¿. Pueden verse
otros caracteres con el comando :digraphs
.
Permite ver con colores que resaltan la sintaxis de
algunos
tipos de archivos (por ejemplo fuentes de DocBook, C, LaTeX).
Se activa con :syntax enable
.
Para que se vean los colores de este editor, asegúrese
de que su variable de ambiente TERM
tenga el valor de una terminal que soporte color, por ejemplo
las terminales gráficas soportan
xterm-color
y desde consolas tipo texto
por ejemplo VT220
.
Vea como establecer
la variable TERM
en cada inicio de
sesión en Sección 6, “Personalización”.
Permite indentar automáticamente diversos tipos
de archivos como XML, C, LaTeX, XSLT. Se
activa con :filetype indent on
.
Para modificar tal indentación
pueden establecerse variables de
vim, bien en la sesión abierta,
bien en ~/.vimrc
o bien en
cada archivo. Para
fijar una configuración particular que se tome al editar
cierto archivo, basta agregar al comienzo una línea
(puede ser un comentario en el caso de lenguajes de
programación) como:
/* vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker: */
Pueden verse el número de cada línea con :set number y esta característica se deshabilita con :set nonumber.
Cada usuario puede tener sus propias
configuraciones en el archivo ~/.vimrc
,
que consta de líneas con comandos o comentarios. Los
comandos no deben iniciar con ':' y los comentarios se
colocan en líneas completas o al final de una línea iniciando
con comillas. Por ejemplo:
" Este es un ejemplo de archivo de configuración para vim syntax enable filetype on filetype plugin on filetype indent on
Puede resultar instructivo que copie y examine un archivo de ejemplo distribuido con vim así:
$ cp /usr/local/share/vim/vim63/vimrc_example.vim ~/.vimrc
vim
empleará el locale establecido en la variable de ambiente
LANG
(ver Sección 6.1, “Locale”).
Sin embargo si prefiere también puede establecer idioma
de los mensajes que presenta, así como codificación de
la termina y de los archivos.
Puede establecer el idioma de los mensajes que vim presenta con el comando
:language
, por ejemplo para establecer español de Colombia,
desde el modo comandos teclee:
:language es_CO
Puede establecer esta configuración por defecto agregando el comando al
archivo ~/.vimrc
.
vim puede emplear codificaciones diferentes
para la terminal y para los
archivos, ambos se establecen con la variable encoding
(o
enc
) y cada uno en particular con
termencoding
(o tenc
) y
fileencoding
(o fenc
).
Los valores típicos para codificar español son latin1 (que
corresponde a codificicación en un byte ISO8859-1) o
utf8 (que corresopnde a codificación multibyte UTF-8).
Por ejmplo para establecer la codificación de la termina
en UTF-8, desde modo comando teclee:
:set tenc=utf8
Típicamente vim detectar la
codificación de los archivos que edite, o empleará
su codificación preferida en archivos nuevos.
Puede deshabilitarse la autodetección dejando vacía
la variable fileencoding
(lo
cual no recomendamos). La forma recomendada y
por defecto en vim es emplear
una terminal que soporte la codificación especificada en
LANG y dejar que vim la emplee y que
autodetecte la codificación de archivos.
Si no opera de esta forma puede intentar agregar
a su archivo ~/.vimrc
:
set encoding& " terminal charset: follows current locale set fileencoding& " auto-sensed charset of current buffer
Puede aprender sobre vim y su
configuración en el manual de este programa que se
consulta presionando la tecla F1
.
Esta documentación también está disponible en
Internet en:
http://vimdoc.sourceforge.net/htmldoc/usr_toc.html
Hay numerosos archivos de comando (scripts) para vim en http://www.vim.org/scripts/index.php