El editor más frecuente en Unix es vi
. Es un editor que
trabaja línea a línea y que muestra una pantalla de texto a la vez.
Para inciar una sesión de edición, se ejecuta el programa
vi
seguido del nombre del archivo a editar, y dado el caso
también la trayectoria. Por ejemplo, para editar el arvhivo
/tmp/borrame
, basta con dar vi
/tmp/borrame
, o
para editar un archivo en el directorio actual: vi
borrame
.
Si el archivo no existe vi
lo crea. De igual manera,
podemos simplemente invocar a vi
, comenzar a escribir y despúes
nombrar el archivo al momento de salvarlo.
Al ser ejecutado vi
, presenta una pantalla con el
texto del archivo, y las líneas después del final del archivo aparecen
con el carácter ~
para indicar que a partir de ahí el archivo
está vacio. Obviamente, si comenzamos a editar un archivo nuevo, todas
las líneas aparecerán con éste carácter.
Tiene tres modos de trabajo. El modo de inserción, el de edición y el de comandos.
En el modo de inserción, toda la entrada que demos en el teclado se inserta en el archivo en el punto donde se encuentre el cursor. En el modo de edición daremos instrucciones que alteran el contenido, como por ejemplo para posicionarse en determinado punto, hacer reemplazos de texto, copiar o mover bloques de texto, etc. En el modo comandos se dan instrucciones para salvar el archivo, traer a edición otro, insertar otro archivo en el punto donde se está, terminar la edición, etc.
En el modo edición, las instrucciones para mover el cursor en del texto son:
comando | se desplaza: |
l |
un espacio a la derecha |
h |
un espacio a la izquierda |
j |
una línea hacia abajo |
k |
una línea hacia arriba |
$ |
al final de la línea |
^ |
al principio de la línea |
w |
a la siguiente palabra |
e |
al final de la palabra |
b |
al principio de la palabra |
) |
al final de la frase |
( |
al inicio de la frase |
{ |
al inicio del párrafo |
} |
al final del párrafo |
n| |
a la columna n-ésima |
H |
a la primera columna de la primera línea de la ventana |
L |
a la primera columna de la última línea de la ventana |
nG |
a la primera columna de la n-ésima línea del archivo |
Para el control de la parte del texto que se despliega en la pantalla:
instrucción | acción: |
^d |
desliza el texto hacia arriba |
^u |
desliza el texto hacia abajo |
^f |
despliega la ventana de texto siguiente |
^b |
despliega la ventana de texto anterior |
^l |
redespliega el texto en la ventana actual |
Las instrucciones para borrar texto:
dw |
suprime la palabra donde está el cursor |
dd |
suprimir la línea donde está el cursor |
D |
borra el texto entre el cursor y el fin de la línea |
x |
borra el carácter sobre el que esta el cursor |
Para hacer reemplazos de texto:
cw |
cambiar la palabra actual |
cc |
cambiar la línea actual |
C |
cambiar desde el cursor hasta el final de la línea |
r |
cambiar el carácter sobre el que está el cursor |
Algunas instrucciones suplementarias:
u |
anular la última instrucción dada |
/ |
realiza una búsqueda hacia adelante |
? |
realiza una búsqueda hacia atrás |
n |
busca la siguiente ocurrencia de la última búsqueda |
. |
repite la última instrucción |
Y |
extrae la línea |
p |
se coloca en la línea de abajo |
P |
se coloca en la línea de arriba |
ZZ |
salva el archivo y termina la edición |
ESC |
cancela una orden |
: |
se cambia a modo comandos |
Cuando vi
esta en modo de edición, para cambiarse a
modo inserción se hace con el carácter i
y se posiciona antes
del cursor y con a
después de éste. Con Esc
se cambia a
modo edición de nuevo.
En modo de comandos, se tienen las siguientes funciones:
:w |
salva el archivo en el disco |
:q |
abandona la edición sin guardar los cambios |
:wq |
escribe y termina |
:q! |
abandona sin escribir cuando se realizó algún cambio. |
:r |
carga otro archivo |
:e |
edita el archivo |
:f |
cambia o dá nombre al archivo actual |
:n |
se posiciona en la n-ésima línea |
:Esc |
se pasa a modo de edición |
vi
tiene muchas más instrucciones y es capáz de
realizar tareas muy complejas. Es importante conocer la mayoría de
ellas para hacer más eficiente nuestro trabajo, pero son demasiado
extensas para incluirlas todas en este curso. Existen libros
especializados donde se describe con toda sobriedad esta poderosa
herramienta.
Existen además de vi
otros editores para Unix, incluso
más poderosos que él, pero esto depende de cada implementación de
Unix. vi
y ex
(que por ser algo más limitado, no
trataremos aquí) son los únicos que se garantiza que se pueden
encontrar en cualquier instalación de Unix. Entre los editores más
populares se encuentra Emacs, pero cuenta con un conjunto de
instrucciones realmente complejo, lo cual forma parte de su tradición
de ser para usuarios avanzados.
Haremos ahora un ejemplo para familiarizarnos con
vi
. Comenzaremos editando un archivo nuevo que se llamará
cordero.txt. Invocamos a vi
con este argumento,
$vi cordero.txt
ahora la pantalla se limpia y aparecen varios renglones con
tildes en el márgen izquierdo y en la parte inferior izquierda aparece
el mensaje ¨cordero.txt¨ [New file]
, que indica que
se esta creando un archivo nuevo.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "cordero.txt" [NEW FILE] 1 line, 1 char
En este momento nos encontramos en el modo de edición con el
cual podemos iniciar la captura del texto. Para esto damos la
instrucción i
y nos pasamos a modo inserción. Ahora podemos
escribir cualquier texto que necesitemos.
Cuando se tengan un par o más párrafos podemos ejercitar algunas de las instrucciones para movernos por el texto y para realizar búsquedas e incluso reemplazos.
Nuevamente, para tener un conocimiento más profundo de
vi
es recomendable ver la página de vi
con
man vi
.