Anuncios

En este capítulo, entenderemos cómo funciona el editor vi en Unix. Hay muchas maneras de editar archivos en Unix. Editar archivos usando el editor de texto orientado a la pantalla vi es una de las mejores maneras. Este editor le permite editar líneas en contexto con otras líneas en el archivo.

Una versión mejorada del editor vi que se llama VIM también se ha hecho disponible ahora. Aquí, VIM significa Vi IMproved.

vi es generalmente considerado el estándar de facto en los editores de Unix porque –

  • Suele estar disponible en todos los sabores del sistema Unix.

  • Sus implementaciones son muy similares en todos los ámbitos.

  • Requiere muy pocos recursos.

  • Es más fácil de usar que otros editores como el ed o el ex.

  • Puede utilizar el editor vi para editar un archivo existente o para crear un nuevo archivo desde cero. También puede utilizar este editor para simplemente leer un archivo de texto.

    Iniciar el editor vi

    La siguiente tabla enumera los comandos básicos para utilizar el editor vi –

    Sr.No. Comando & Descripción
    1 vi nombre de archivo

    Crea un nuevo archivo si no existe ya, en caso contrario abre un archivo existente.

    2

    vi -R nombrearchivo

    Abre un archivo existente en modo de sólo lectura.

    3 Ver nombre de archivo

    Abre un archivo existente en el modo de sólo lectura.

    El siguiente es un ejemplo para crear un nuevo archivo testfile si no existe ya en el directorio de trabajo actual –

$vi testfile

El comando anterior generará la siguiente salida –

|~~~~~~~~~~~~"testfile" 

Notarás una tilde (~) en cada línea que sigue al cursor. Una tilde representa una línea no utilizada. Si una línea no comienza con una tilde y parece estar en blanco, hay un espacio, un tabulador, una nueva línea o algún otro carácter no visible.

Ahora tiene un archivo abierto para empezar a trabajar. Antes de continuar, vamos a entender algunos conceptos importantes.

Modos de operación

Mientras se trabaja con el editor vi, normalmente nos encontramos con los siguientes dos modos –

  • Modo comando – Este modo le permite realizar tareas administrativas como guardar los archivos, ejecutar los comandos, mover el cursor, cortar (yanking) y pegar las líneas o palabras, así como encontrar y reemplazar. En este modo, todo lo que se escribe se interpreta como un comando.

  • Modo de inserción – Este modo le permite insertar texto en el archivo. Todo lo que se escribe en este modo se interpreta como entrada y se coloca en el archivo.

  • vi siempre se inicia en el modo de comando. Para introducir texto, debe estar en el modo de inserción, para lo cual basta con teclear i. Para salir del modo de inserción, pulse la tecla Esc, que le llevará de nuevo al modo de comandos.

    Pista – Si no está seguro de en qué modo se encuentra, pulse la tecla Esc dos veces; esto le llevará al modo de comandos. Abra un archivo utilizando el editor vi. Empieza escribiendo algunos caracteres y luego pasa al modo de comandos para entender la diferencia.

    Salir de vi

    El comando para salir de vi es :q. Una vez en el modo de comandos, escribe dos puntos, y ‘q’, seguido de return. Si su archivo ha sido modificado de alguna manera, el editor le advertirá de ello, y no le permitirá salir. ¡Para ignorar este mensaje, el comando para salir de vi sin guardar es :q! Esto le permite salir de vi sin guardar ninguno de los cambios.

    El comando para guardar el contenido del editor es :w. Puede combinar el comando anterior con el comando quit, o utilizar :wq y return.

    La forma más sencilla de guardar los cambios y salir de vi es con el comando ZZ. Cuando esté en el modo de comando, escriba ZZ. El comando ZZ funciona de la misma manera que el comando :wq.

    Si quiere especificar/escribir algún nombre particular para el archivo, puede hacerlo especificándolo después de la :w. Por ejemplo, si quiere guardar el archivo en el que está trabajando como otro nombre de archivo llamado nombredearchivo2, escribiría :w nombredearchivo2 y volvería.

    Movimiento dentro de un archivo

    Para moverse dentro de un archivo sin afectar a su texto, debe estar en el modo de comandos (pulsar Esc dos veces). La siguiente tabla enumera algunos comandos que puedes utilizar para moverte de un carácter a otro –

    l

    Mueve el cursor a la derecha una posición de carácter posición

    iv.No. Comando & Descripción
    1 k

    Mueve el cursor hacia arriba una línea

    2 j

    Mueve el cursor hacia abajo una línea

    3

    h

    Mueve el el cursor a la izquierda una posición de carácter

    4

    Hay que tener en cuenta los siguientes puntos para moverse dentro de un archivo –

    • vi es sensible a las mayúsculas y minúsculas.sensible a las mayúsculas y minúsculas. Hay que prestar atención a las mayúsculas cuando se usan los comandos.

    • La mayoría de los comandos en vi pueden ir precedidos del número de veces que se quiere que ocurra la acción. Por ejemplo, 2j mueve el cursor dos líneas hacia abajo de la ubicación del cursor.

    • Hay muchas otras maneras de moverse dentro de un archivo en vi. Recuerde que debe estar en el modo de comando (presione Esc dos veces). La siguiente tabla enumera algunos comandos para moverse por el archivo –

      A continuación se muestra la lista de comandos para moverse por el archivo.

      0 o |

      Posiciona el cursor al principio de una línea

      (

      Pone el cursor al principio de la frase actual

      7

      d8

      Se mueve a la parte superior de la pantalla

      😡

      Un punto seguido de un número posicionaría el cursor en el número de línea representado por x

      Sr.No. Comando & Descripción
      1 2 Posiciona el cursor al final de una línea
      3 w

      Posiciona el cursor en la siguiente palabra

      4

      b

      Posiciona el cursor en la anterior palabra

      5
      6 .

      )

      Posiciona el cursor al principio de la siguiente frase

      E

      Se desplaza al final de la palabra

      Mueve un párrafo hacia atrás

      9

      Mueve un párrafo hacia delante

      .

      10 ]

      Mueve un apartado hacia delante

      12 n|

      Se mueve a la columna n en la línea actual

      13 1G

      Se mueve a la primera línea del fichero

      14

      G

      Se mueve a la última línea del fichero

      15 nG

      Se mueve a la enésima línea del fichero

      16 :n

      Se desplaza a la enésima línea del fichero

      17

      fc

      Se desplaza hacia delante hasta c

      18

      Fc

      Se desplaza hacia atrás a c

      19
      20

      nH

      Se mueve a la enésima línea de la parte superior de la pantalla

      21

      Se mueve a la mitad de la pantalla

      22 L

      Se mueve a la parte inferior de la pantalla

      23 nL

      Se desplaza a la enésima línea desde la parte inferior de la pantalla

      24

      Comandos de control

      Los siguientes comandos pueden utilizarse con la tecla de control para realizar las funciones que se indican en la siguiente tabla –

      A continuación se muestra la lista de comandos de control.

      CTRL+f

      Avanza una pantalla completa

      CTRL+u

      Se mueve hacia atrás 1/2 pantalla

      CTRL+b

      Se mueve hacia atrás una pantalla completa

      CTRL+e

      Mueve la pantalla una línea hacia arriba

      CTRL+y

      Desplaza la pantalla una línea hacia abajo

      CTRL+u

      Mueve la pantalla 1/2 página arriba

      CTRL+d

      Desplaza la pantalla 1/2 página hacia abajo

      CTRL+b

      Mueve la pantalla una página hacia arriba

      CTRL+f

      Desplaza la pantalla una página hacia abajo

      CTRL+I

      Redibuja la pantalla

      Sr.No. Comando & Descripción
      1 CTRL+d

      Avanza 1/2 pantalla

      2
      3 4 5 6 7 8 9 10 11

      Edición de archivos

      Para editar el archivo, hay que estar en el modo de inserción. Hay muchas formas de entrar en el modo de inserción desde el modo de comandos –

      1

      iv.No. Comando & Descripción
      1 i

      Inserta texto antes de la ubicación actual del cursor

      . 2 I

      Inserta texto al principio de la línea actual

      3

      a

      Inserta texto después de la posición actual del cursor

      4

      A

      Inserta texto al final de la línea actual

      5

      o

      Crea una nueva línea para la entrada de texto por debajo de la ubicación del cursor

      6 O

      Crea una nueva línea para la entrada de texto por encima de la ubicación del cursor

      Borrar caracteres

      Aquí hay una lista de comandos importantes, que se pueden utilizar para eliminar caracteres y líneas en un archivo abierto –

      Elimina desde la ubicación actual del cursor hasta la siguiente palabra

      d$

      Elimina desde la posición actual del cursor hasta el final de la línea

      dd

      Elimina la línea en la que se encuentra el cursor

      Sr.No. Comando & Descripción
      1

      x

      Elimina el carácter bajo la ubicación del cursor

      2

      X

      Elimina el carácter anterior a la ubicación del cursor

      3
      4

      Elimina desde la posición actual del cursor hasta el principio de la línea

      5
      6 D

      Elimina desde la posición del cursor hasta el final de la línea actual

      7

Como se ha mencionado anteriormente, la mayoría de los comandos en vi pueden ir precedidos por el número de veces que quieres que se produzca la acción. Por ejemplo, 2x borra dos caracteres bajo la ubicación del cursor y 2dd borra dos líneas en las que se encuentra el cursor.

Se recomienda practicar los comandos antes de seguir adelante.

Comandos de cambio

También tiene la capacidad de cambiar caracteres, palabras o líneas en vi sin borrarlas. Aquí están los comandos relevantes –

2

Reemplaza el carácter bajo el cursor. vi vuelve al modo de comandos después de introducir el reemplazo.

S

Borra la línea en la que está el cursor y la sustituye por el nuevo texto. Después de introducir el nuevo texto, vi permanece en el modo de inserción.

Sr.No. Comando & Descripción
1 cc

Elimina el contenido de la línea, dejándolo en modo inserción.

cw

Cambia la palabra en la que se encuentra el cursor por la w minúscula del final de la palabra.

3
4 R

Sobreescribe múltiples caracteres comenzando por el carácter actualmente bajo el cursor. Debe utilizar Esc para detener la sobrescritura.

5

s

Reemplaza el carácter actual con el carácter que se escribe. Después, se queda en el modo de inserción.

6

Comandos de copiar y pegar

Puedes copiar líneas o palabras de un lugar y luego puedes pegarlas en otro lugar utilizando los siguientes comandos –

yy

Copia la línea actual.

2

Pone el texto copiado después del cursor.

Pone el texto arrancado antes del cursor.

iv.No. Comando & Descripción
1
yw

Copia la palabra actual desde el carácter en el que se encuentra el cursor de la w minúscula, hasta el final de la palabra.

3
4

Comandos avanzados

Hay algunos comandos avanzados que simplifican la edición del día a día y permiten un uso más eficiente de vi –

A continuación se ofrece la lista de comandos avanzados.

1

<<

Desplaza la línea actual a la izquierda un ancho de desplazamiento.

>>

Desplaza la línea actual hacia la derecha un ancho de desplazamiento.

~

Cambia el caso del carácter bajo el cursor.

U

Restaura la línea actual al estado en que estaba antes de que el cursor entrara en la línea.

u

Esto ayuda a deshacer el último cambio que se hizo en el archivo. Si se escribe ‘u’ de nuevo se rehace el cambio.

11

Sr.No. Comando & Descripción
J

Une la línea actual con la siguiente. Una cuenta de comandos j une muchas líneas.

2
3
4
5 ^G

Pulsa las teclas Ctrl y G al mismo tiempo para mostrar el nombre de archivo actual y el estado.

6
7
8 J

Une la línea actual con la siguiente. Una cuenta une esa cantidad de líneas.

9 :f

Muestra la posición actual en el archivo en % y el nombre del archivo, el número total de archivo.

10 :f renombra el fichero actual a nombre de fichero.

Redacta el fichero actual a nombre de fichero.

:w nombre de fichero

Escribe a nombre de fichero.

12 :e nombrearchivo

Abre otro archivo con nombrearchivo.

13 :cd nombre de archivo

Cambia el directorio de trabajo actual a nombre de archivo.

14

:e #

Cambia entre dos archivos abiertos.

15 :n

En caso de que abra varios archivos con vi, utilice :n para ir al siguiente archivo de la serie.

16 :p

En caso de que abra varios archivos usando vi, use :p para ir al archivo anterior de la serie.

17 :N

En caso de abrir múltiples archivos usando vi, usa :N para ir al archivo anterior de la serie.

18 :r archivo

Lee el archivo y lo inserta después de la línea actual.

19 :nr archivo

Lee el archivo y lo inserta después de la línea n.

Búsqueda de palabras y caracteres

El editor vi tiene dos tipos de búsqueda: de cadenas y de caracteres. Para una búsqueda de cadenas, se utilizan los comandos / y ? Cuando se inician estos comandos, el comando que se acaba de escribir se mostrará en la última línea de la pantalla, donde se escribe la cadena concreta a buscar.

Estos dos comandos sólo se diferencian en la dirección en la que se realiza la búsqueda –

  • El comando / busca hacia delante (hacia abajo) en el archivo.

  • El comando ? busca hacia atrás (hacia arriba) en el archivo.

  • Los comandos n y N repiten el comando de búsqueda anterior en la misma dirección o en la opuesta, respectivamente. Algunos caracteres tienen un significado especial. Estos caracteres deben ir precedidos de una barra invertida (\) para ser incluidos como parte de la expresión de búsqueda.

    ^

    Busca al principio de la línea (Se utiliza al principio de una expresión de búsqueda).

    d2

    Final de línea (Se utiliza al final de la expresión de búsqueda).

    <

    Se pone en una expresión escapada con la barra invertida para encontrar el final o el principio de una palabra.

    >

    Esto ayuda a ver la descripción del carácter ‘<‘ de arriba.

    Sr.No.
    Caracteres &Descripción
    1
    Empareja un solo carácter.
    3

    *

    Empareja cero o más del carácter anterior.

    4
    5 [

    Inicia un conjunto de expresiones coincidentes o no coincidentes.

    6
    7

    La búsqueda de caracteres busca dentro de una línea para encontrar un carácter introducido después del comando. Los comandos f y F buscan un carácter en la línea actual solamente. f busca hacia adelante y F hacia atrás y el cursor se mueve a la posición del carácter encontrado.

    Los comandos t y T buscan un carácter en la línea actual solamente, pero para t, el cursor se mueve a la posición antes del carácter, y T busca la línea hacia atrás hasta la posición después del carácter.

    Comandos Set

    Puede cambiar el aspecto de su pantalla de vi utilizando los siguientes comandos :set. Una vez que esté en el modo de comando, escriba :set seguido de cualquiera de los siguientes comandos.

    1

    :set ai

    Ajusta la autoindentación

    :set noai

    Desactiva la autoindentación

    :set nu

    Muestra las líneas con números de línea en el lado izquierdo

    :set ro

    Cambia el tipo de archivo a «sólo lectura»

    iv.No. Comando & Descripción
    :set ic

    Ignora las mayúsculas y minúsculas al buscar

    2 3 4
    5 :set sw

    Ajusta el ancho de un tabulador de software. Por ejemplo, se establecería un ancho de desplazamiento de 4 con este comando – :set sw = 4

    6 :set ws

    Si se establece wrapscan, y la palabra no se encuentra en la parte inferior del archivo, intentará buscarla al principio

    7 :set wm

    Si esta opción tiene un valor mayor que cero, el editor «envolverá la palabra» automáticamente. Por ejemplo, para establecer el margen de ajuste a dos caracteres, se escribiría esto: :set wm = 2

    8
    9

    :set term

    Imprime el tipo de terminal

    10 :set bf

    Descarta los caracteres de control de la entrada

    Ejecutar comandos

    El vi tiene la capacidad de ejecutar comandos desde el editor. Para ejecutar un comando, sólo tiene que ir al modo de comando y escribir :! comando.

    Por ejemplo, si quiere comprobar si un archivo existe antes de intentar guardar su archivo con ese nombre, puede escribir :! ls y verá la salida de ls en la pantalla.

    Puede pulsar cualquier tecla (o la secuencia de escape del comando) para volver a su sesión de vi.

    Reemplazar texto

    El comando de sustitución (:s/) le permite reemplazar rápidamente palabras o grupos de palabras dentro de sus archivos. A continuación se muestra la sintaxis para reemplazar texto –

:s/search/replace/g

La g significa globalmente. El resultado de este comando es que se cambian todas las ocurrencias en la línea del cursor.

Puntos importantes a tener en cuenta

Los siguientes puntos se sumarán a su éxito con vi –

  • Debe estar en modo comando para usar los comandos. (Presione Esc dos veces en cualquier momento para asegurarse de que está en modo comando.)

  • Debe tener cuidado con los comandos. Estos distinguen entre mayúsculas y minúsculas.

  • Debe estar en el modo de inserción para introducir texto.

Anuncios

.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *