Las siguientes secciones explican las siguientes categorías de comandos de vi.
-
Desplazarse por un archivo
-
Insertar texto
-
Cambiar y sustituir texto
-
Deshacer los cambios en el texto
-
Borrar texto
- .
-
Revisar su ortografía
-
Formatear la salida de su archivo
-
Repetir comandos
Moviendo en un archivo
En las secciones anteriores aprendió a crear, guardar, imprimir y salir de un archivo vi. Ahora que ha creado un archivo, necesitará entender los conceptos que se requieren para navegar dentro de él. Abra su archivo de práctica ahora, y pruebe cada uno de los comandos que se discuten en esta sección.
Moviendo el Cursor
Cuando inicias vi, el cursor está en la esquina superior izquierda de la pantalla de vi. En el modo de comandos, puede mover el cursor con una serie de comandos del teclado. Ciertas teclas de letras, las teclas de flecha, y la tecla Return, la tecla Back Space (o Suprimir) y la barra espaciadora se pueden utilizar para mover el cursor cuando está en el modo de comandos.
Nota –
La mayoría de los comandos de vi distinguen entre mayúsculas y minúsculas. El mismo comando escrito en minúsculas y en mayúsculas puede tener efectos diferentes.
Moviendo con las teclas de flecha
Si su máquina está equipada con teclas de flecha, inténtelo ahora. Debería poder mover el cursor libremente por la pantalla utilizando combinaciones de las teclas de flecha arriba, abajo, derecha e izquierda. Tenga en cuenta que sólo puede mover el cursor a través de los espacios de texto o de entrada ya existentes.
Si está utilizando vi desde un terminal remoto, las teclas de flecha podrían no funcionar correctamente. El comportamiento de las teclas de dirección depende de su emulador de terminal. Si las teclas de dirección no le funcionan, puede utilizar los siguientes sustitutos:
-
Para moverse a la izquierda, pulse h.
-
Para moverse a la derecha, pulse l.
-
Para moverse hacia abajo, pulse j.
-
Para moverse hacia arriba, pulse k.
Mover una palabra
Pulse w («palabra») para mover el cursor hacia la derecha una palabra cada vez.
Pulsa b («back») para mover el cursor hacia la izquierda una palabra cada vez.
Pulse W o B para mover el cursor más allá de la puntuación adyacente hasta el siguiente o anterior espacio en blanco.
Pulse e («fin») para mover el cursor al último carácter de la palabra actual.
Mover al principio o al final de la línea
Pulse ^ para mover el cursor al principio de la línea actual.
Pulse $ para mover el cursor al final de la línea actual.
Moviendo una línea hacia abajo
Pulse la tecla Return para mover el cursor al principio de la siguiente línea hacia abajo.
Moviendo a la izquierda
Pulse la tecla Espacio atrás para mover el cursor un carácter a la izquierda.
Mover a la derecha
Pulse la barra espaciadora para mover el cursor un carácter a la derecha.
Moviendo hacia arriba
Pulse H («alto») para mover el cursor hacia la parte superior de la pantalla.
Mover al centro
Pulse M («middle») para mover el cursor al centro de la pantalla.
Movimiento hacia el fondo
Pulse L («bajo») para mover el cursor hacia el fondo de la pantalla.
Paging y desplazamiento
Si te mueves hacia abajo cuando el cursor está en la parte inferior de la pantalla, o te mueves hacia arriba cuando el cursor está en la parte superior de la pantalla, verás que el texto se desplaza hacia arriba o hacia abajo. Este desplazamiento puede ser una manera eficaz de mostrar más texto en un archivo corto, pero puede ser tedioso moverse de esta manera a través de un archivo largo.
Puede paginar o desplazarse hacia adelante o hacia atrás por un archivo, una pantalla o media pantalla a la vez. Para probar estos comandos en paint, es posible que desee añadir texto para tener un archivo más largo con el que trabajar.
Note que la paginación y el desplazamiento son fundamentalmente diferentes. El desplazamiento realmente desplaza el cursor hacia arriba o hacia abajo a través del texto una línea a la vez, como si estuviera en un rollo de papel. La paginación mueve el cursor hacia arriba o hacia abajo a través del texto una pantalla a la vez. En un sistema rápido, es posible que no notes la diferencia. Sin embargo, si está trabajando desde un terminal remoto o en cualquier otra situación en la que su sistema funcione más lento de lo habitual, esta diferencia puede resultar dolorosamente evidente.
Avanzar una pantalla
Para avanzar (bajar) una pantalla, pulse Ctrl-F. (Mantenga pulsada la tecla Control y pulse la tecla F.) El cursor se mueve a la esquina superior izquierda de la nueva pantalla.
Avanzar media pantalla
Para avanzar media pantalla, pulse Ctrl-D.
Desplazarse hacia atrás una pantalla
Para desplazarse hacia atrás (es decir, hacia arriba) una pantalla, pulse Ctrl-B.
Desplazarse hacia atrás media pantalla
Para desplazarse hacia atrás media pantalla, pulse Ctrl-U.
Insertar texto
vi proporciona muchos comandos para insertar texto. Esta sección le presenta los más útiles de estos comandos. Tenga en cuenta que cada uno de estos comandos coloca a vi en modo de entrada. Para usar cualquiera de estos comandos, primero debe estar en modo de comando. Recuerde pulsar Esc para asegurarse de que está en modo comando.
Añadir
Escriba a (añadir) para insertar texto a la derecha del cursor. Experimenta moviendo el cursor en cualquier parte de una línea y escribiendo a, seguido del texto que quieras añadir. Pulsa Esc cuando hayas terminado.
Escribe A para añadir texto al final de una línea. Para ver cómo funciona este comando, sitúe el cursor en cualquier lugar de una línea de texto y escriba A. El cursor se desplaza al final de la línea, donde puede escribir sus adiciones. Pulse Esc cuando haya terminado.
Insertar
Inserta texto a la izquierda del cursor escribiendo i desde el modo de comando.
Escriba I para insertar texto al principio de una línea. El comando mueve el cursor desde cualquier posición de esa línea. Pulse Esc para volver al modo de comandos después de escribir el texto deseado.
Abrir línea
Use estos comandos para abrir nuevas líneas, ya sea por encima o por debajo de la posición actual del cursor.
Escriba o para abrir una línea por debajo de la posición actual del cursor. Para experimentar, escriba o seguido de un poco de texto. Puede escribir varias líneas de texto si lo desea. Pulse Esc cuando haya terminado.
Escriba O para abrir una línea por encima de la posición actual del cursor.
Cambiar el texto
Cambiar el texto implica la sustitución de una sección de texto por otra. vi tiene varias formas de hacerlo, dependiendo de las circunstancias.
Cambiar una palabra
Para sustituir una palabra, sitúe el cursor al principio de la palabra a sustituir. Escriba cw, seguido de la nueva palabra. Para terminar, pulse Esc.
Para cambiar parte de una palabra, sitúe el cursor en la palabra, a la derecha de la porción a guardar. Escriba cw, escriba la corrección y pulse Esc.
Cambiar una línea
Para sustituir una línea, sitúe el cursor en cualquier lugar de la línea y escriba cc. La línea desaparece, dejando una línea en blanco para su nuevo texto (que puede ser de cualquier longitud). Pulse Esc para terminar.
Sustitución de carácter(es)
Para sustituir uno o más caracteres por el carácter bajo el cursor, escriba s, seguido del nuevo texto. Pulse Esc para volver al modo de comandos.
Reemplazar un carácter
Utilice este comando para reemplazar el carácter resaltado por el cursor con otro carácter. Coloque el cursor sobre el carácter y escriba r, seguido de un solo carácter de sustitución. Tras la sustitución, vi vuelve automáticamente al modo de comandos (no es necesario pulsar Esc).
Deshacer cambios
Cuando editas texto y haces cambios en un archivo de vi, puede que de vez en cuando desees no haber cambiado algo. Los comandos de deshacer de vi te permiten retroceder una operación y continuar desde ahí.
Deshacer el comando anterior
Si comete un error en vi o si simplemente cambia de opinión después de que se haya completado una operación, puede deshacer su último comando pulsando u inmediatamente después del comando. No es necesario pulsar Esc después de escribir u. Al pulsar u por segunda vez deshaces el deshecho.
Deshacer cambios en una línea
Teclee U para deshacer todos los cambios que haya hecho en una línea. Este comando sólo funciona si no has movido el cursor fuera de la línea. No es necesario pulsar Esc después de escribir U.
Borrar texto
Estos comandos de vi borran el carácter, la palabra o la línea que usted indique. vi permanece en el modo de comandos, por lo que cualquier inserción de texto posterior debe ir precedida de comandos adicionales para entrar en el modo de entrada.
Borrar un carácter
Para borrar un carácter, sitúe el cursor sobre el carácter a borrar y escriba x.
El comando x también borra el espacio que ocupaba el carácter-cuando se elimina una letra del medio de una palabra, las letras restantes se cerrarán, sin dejar ningún hueco. También puede eliminar los espacios en blanco de una línea con el comando x.
Para borrar un carácter antes (a la izquierda) del cursor, escriba X (mayúscula).
Borrar una palabra o parte de una palabra
Para borrar una palabra, sitúe el cursor al principio de la palabra y escriba dw. Se elimina la palabra y el espacio que ocupaba.
Para borrar parte de una palabra, sitúe el cursor en la palabra a la derecha de la parte que desea guardar. Escriba dw para borrar el resto de la palabra.
Borrar una línea
Para borrar una línea, sitúe el cursor en cualquier lugar de la línea y escriba dd. Se elimina la línea y el espacio que ocupaba.
Copiar y mover texto – Tirar, borrar y poner
Muchos procesadores de texto permiten «copiar y pegar» y «cortar y pegar» líneas de texto. El editor vi también incluye estas características. El equivalente en el modo de comandos de vi a «copiar y pegar» es tirar y poner. El equivalente a «cortar y pegar» es borrar y poner.
Los métodos para copiar o mover pequeños bloques de texto en vi implican el uso de una combinación de los comandos yank, delete y put.
Copiar líneas
Copiar una línea requiere dos comandos: yy o Y («yank») y p («put below») o P («put above»). Tenga en cuenta que Y hace lo mismo que yy.
Para arrancar una línea, siga estos pasos.
-
Posicione el cursor en cualquier lugar de la línea que quiere arrancar.
-
Tipo yy.
-
Mueva el cursor a la línea de arriba donde quiere poner (copiar) la línea arrancada.
Tipo p.
Una copia de la línea arrancada aparece en una nueva línea por debajo del cursor.
Para colocar la línea arrancada en una nueva línea por encima del cursor, escriba P.
El comando yy funciona bien con una cuenta: para arrancar 11 líneas, por ejemplo, escriba 11yy. Once líneas, contando hacia abajo desde el cursor, son arrancadas, y vi lo indica con un mensaje en la parte inferior de la pantalla: 11 líneas arrancadas.
También puede utilizar los comandos P o p inmediatamente después de cualquiera de los comandos de borrado comentados anteriormente. Esta acción pone el texto que has borrado encima o debajo del cursor, respectivamente.
Precaución –
Utiliza sólo los comandos de movimiento del cursor entre arrancar o borrar y poner. Si borras o jalas cualquier otro texto antes de poner el nuevo, las líneas que jalaste o borraste se pierden.
Mover líneas
Mover líneas también requiere dos comandos: dd («borrar») y p o P.
Para mover una línea, sitúe el cursor en cualquier lugar de la línea y escriba dd. Por ejemplo, para borrar 5 líneas, escriba 5dd.
A continuación, mueva el cursor a la línea por encima de la cual desea reinsertar la línea borrada y escriba p. Esto inserta el texto en una nueva línea por debajo del cursor.
Alternativamente, puede poner la línea borrada por encima del cursor escribiendo P.
Usando un recuento para repetir comandos
Muchos comandos de vi pueden ir precedidos de un factor de repetición (llamado recuento)-un número que precede al comando y le indica cuántas veces debe repetir la operación.
La mayoría de los comandos de las secciones anteriores llevan cuentas. Por ejemplo, 3dd repite el comando de borrar una línea tres veces, por lo que borra tres líneas. 2dw borra dos palabras, y 4x borra cuatro caracteres o espacios. También puedes usar cuentas con comandos para mover el cursor, como 3w y 2Ctrl-F. En la sección Resumen de Comandos Básicos de vi cada comando que toma un conteo se indica con «» antes del nombre del comando.
Escribiendo un punto (.) se repite el comando de cambio de texto anterior. Por ejemplo, si acaba de borrar una línea con dd, puede mover el cursor a otra línea y borrarla simplemente escribiendo un punto.