Comando vi de Linux

comando vi

En Tipo Unix sistemas operativos, nosotros (pronunciado 'ue-eye') es un editor de texto.

Descripción

La nosotros comando inicia el modo visual de ex , el programa de edición de referencia desarrollado por William Joy a fines de la década de 1970. Como ex ganó popularidad, Joy notó que la mayoría de los usuarios usaban exclusivamente su modo visual, por lo que para hacer las cosas más convenientes para sus usuarios, agregó un enlace a ex que lo inició en modo visual automáticamente. Hoy nosotros es el editor de texto más popular entre Linux usuarios.

Una implementación más rica en funciones de nosotros llamado yo vine (que significa 'vi mejorado') también está disponible. Para obtener más información, consulte nuestro yo vine documentación .

Sintaxis

|_+_|

Opciones

- | -s Suprima todos los comentarios interactivos de los usuarios. Esto es útil cuando se procesa el editor guiones .
-l Configurar para editar CECEO programas.
-r Enumere el nombre de todos los archivos guardados como resultado de una falla del editor o del sistema.
-r Nombre del archivo Editar Nombre del archivo después de un fallo del editor o del sistema. Recupera la versión de Nombre del archivo que estaba en el búfer cuando ocurrió el accidente.
-L Igual que -r
-R Modo de solo lectura; se establece el indicador de solo lectura, lo que evita la sobrescritura accidental del archivo.
-S Esta opción se utiliza junto con la -t opción de etiqueta para contar nosotros que el archivo de etiquetas puede no estar ordenado y que, si la búsqueda binaria (que se basa en un archivo de etiquetas ordenado) para etiqueta no lo encuentra, también se debe realizar la búsqueda lineal mucho más lenta. Dado que la búsqueda lineal es lenta, los usuarios de archivos de etiquetas grandes deben asegurarse de que los archivos de etiquetas estén ordenados en lugar de utilizar esta marca. La creación de archivos de etiquetas normalmente produce archivos de etiquetas ordenados. Ver ctags para obtener más información sobre archivos de etiquetas.
-t etiqueta Edite el archivo que contiene la etiqueta etiqueta y posicionar al editor en su definición.
-V Modo detallado. Cuándo ex los comandos se leen mediante entrada estándar , la entrada se repetirá al error estándar. Esto puede resultar útil al procesar ex comandos dentro de scripts de shell.
-x Cifrado opción; cuando se usa, nosotros simula el X comando de ex y solicita al usuario una clave. Esta clave se utiliza para cifrar y descifrar texto utilizando la algoritmo de la función cripta. La X El comando hace una suposición fundamentada para determinar si el texto leído está encriptado o no. El archivo de búfer temporal también se cifra, utilizando una versión transformada de la clave introducida para el -x opción. Si se ingresa una clave de cifrado vacía (es decir, si se presiona la tecla de retorno justo después de la solicitud), el archivo no se cifrará. Esta es una buena manera de descifrar un archivo cifrado erróneamente con una clave de cifrado mal escrita, como una tecla de retroceso o deshacer.
-en norte Establezca el tamaño de ventana predeterminado en norte . Esto es útil cuando se usa el editor en una línea de baja velocidad.
-C Opción de encriptación; igual que el -x opción, excepto que nosotros simula el comando C de ex . El comando C es como el X comando de ex , excepto que se asume que todo el texto leído está encriptado.
+ mando | -c mando Comience a editar ejecutando el comando del editor especificado (generalmente un comando de búsqueda o posicionamiento).
Nombre del archivo El archivo que se va a editar.

Usando Vi

nosotros es un editor de texto interactivo que orientado a la pantalla : la pantalla de su terminal actúa como una ventana hacia el archivo que está editando. Los cambios que realice en el archivo se reflejan en lo que ve.

Utilizando nosotros puede insertar texto en cualquier lugar del archivo con mucha facilidad. La mayoría de nosotros Los comandos mueven el cursor en el archivo. Puede mover el cursor hacia adelante y hacia atrás en unidades de caracteres, palabras, oraciones y párrafos. Algunos de los operadores, como D para borrar y c para cambiar, se puede combinar con los comandos de movimiento para que funcionen en palabras completas, párrafos, etc., de forma natural.

Editando un archivo

La forma más común de iniciar un nosotros sesión es decirle qué archivo editar. Para editar un archivo llamado Nombre del archivo , usa el comando:

|_+_|

La pantalla se borrará y el texto de su archivo aparecerá en la pantalla. Si Nombre del archivo aún no existe, nosotros lo iniciará en un nuevo archivo, y cuando le diga que guarde su trabajo, usará el Nombre del archivo que especificó.

La copia del editor: el 'búfer'

El editor no modifica directamente el archivo que está editando. En su lugar, hace una copia de este archivo en la memoria llamada buffer . En realidad, no afecta el contenido del archivo hasta que vuelva a escribir los cambios que ha realizado en el archivo original.

Teclas de flecha

En la mayoría de terminales, puede usar las teclas de flecha para mover el cursor. Izquierda y derecha mueven el cursor un carácter hacia la izquierda o hacia la derecha, y hacia arriba y hacia abajo mueven el cursor hacia arriba o hacia abajo una línea. La otra forma de mover el cursor es con el h , j , a , y l llaves:

h izquierda
j abajo
a arriba
l derecho

Un poco de trivia histórica: la hjkl Las teclas se utilizan porque el sistema informático original con el que desarrolló Bill Joy no tenía teclas de flecha separadas. En cambio, el teclado usó hjkl teclas como las teclas de flecha.

Duro nosotros los usuarios le dirán que el hjkl Las teclas son la única forma 'verdadera' de mover el cursor porque puede mantener las manos en la posición de escritura, pero debe utilizar la que funcione mejor para usted.

Teclas especiales: Esc, Volver y Eliminar

La tecla Escape es importante en nosotros : se utiliza para cancelar cualquier comando que haya comenzado a escribir y para volver al modo de comando después de haber insertado o agregado texto. Escape es una tecla segura para presionar si ha perdido la noción del modo en el que se encuentra o lo que está haciendo. Puede presionarlo varias veces para volver al modo de comando y cancelar cualquier cosa que haya estado haciendo.

La tecla Retorno (o 'Intro') se usa para completar ciertos comandos y ejecutarlos.

La tecla Eliminar es otra tecla 'segura' para presionar. Interrumpe todo lo que el editor ha estado haciendo y lo devuelve al estado predeterminado del editor, a veces también llamado estado 'inactivo'.

Saliendo de vi

El comando ZZ escribirá el contenido del búfer en el archivo que está editando y saldrá nosotros .

Si no hay cambios para guardar, también puede salir del editor con el comando :q . Si ha realizado cambios que aún no se han guardado, el editor no le permitirá salir de esta forma.

Si desea salir y descartar los cambios que ha realizado, puede decirle al editor que está seguro de que sabe lo que está haciendo saliendo con el comando :q! . Esto saldrá nosotros inmediatamente, y los cambios no guardados se perderán.

Moverse en su archivo

Desplazamiento y paginación

El editor tiene varios comandos para moverse dentro de su archivo. Uno de los más útiles es Control-D (también representado como ^ D ). Este comando 'se desplaza' hacia abajo en el archivo (el D significa 'abajo'). ^ U ('arriba') es similar: se desplaza hacia arriba una página en el archivo. Ambos comandos también moverán el cursor a la nueva ubicación.

Si solo desea ver más del archivo, pero deja el cursor donde está, puede usar ^ E para 'exponer' una línea más en la parte inferior de la pantalla. ^Y (que no representa nada, pero está al lado del U en el teclado) expone una línea en la parte superior de la pantalla.

Hay otras formas de moverse por el archivo. Las llaves ^ F y ^B avanzar y retroceder una página (esto se llama 'paginación'), manteniendo un par de líneas de continuidad entre pantallas para que sea posible leer un archivo usando estas en lugar de ^ D y ^ U si lo desea.

Observe la diferencia entre 'desplazarse' ( ^ U , ^ D ) y 'paginación' ( ^B , ^ F ). El desplazamiento deja más contexto, pero la paginación solo le deja un par de líneas. Depende de usted cuál es más fácil para moverse y leer su archivo.

buscando

Otra forma de posicionarse en el archivo es dándole al editor una cuerda buscar. Si escribe ' / 'seguido de una cadena de caracteres y presione Entrar, el editor buscará la siguiente aparición de esta cadena en su archivo y colocará el cursor allí. Prensado norte irá a la siguiente aparición después de eso.

Si en lugar de avanzar, desea buscar una cadena hacia atrás, use ? en vez de / . en un ? búsqueda de cadena, presionando norte lo llevará a sucesivas ocurrencias en la misma dirección (hacia atrás).

Si la cadena de búsqueda que le da al editor no está presente en el archivo, el editor imprimirá un mensaje informándole que no pudo encontrarlo y su cursor no se moverá.

Si desea que su cadena de búsqueda solo coincida si está al principio de una línea, debe comenzar la cadena de búsqueda con un No (' ^ '). Para que coincida solo al final de una línea, finalice la cadena de búsqueda con un signo de dólar (' $ '). Entonces usando el comando

|_+_|

solo encontrará una coincidencia si ' mystring 'está al principio de una línea. Del mismo modo, el comando

|_+_|

solo coincidirá con las apariciones de ' mystring 'que están al final de una línea.

'Ir a'

El comando GRAMO , cuando está precedido por un número, 'irá' a una línea: irá a ese número de línea y colocará el cursor allí. Si utiliza GRAMO sin número, mueve el cursor a la última línea del archivo.

Entonces, usando el comando

|_+_|

Mueve el cursor a la primera línea del archivo;

|_+_|

Mueve el cursor a la línea 30 y

|_+_|

Mueve el cursor a la última línea, sea cual sea el número.

Averiguar dónde se encuentra en el archivo

Puede averiguar dónde se encuentra en el archivo presionando ^ G . Este umbral le muestra el nombre del archivo que está editando, el número de la línea actual, el número de líneas en el búfer y el porcentaje del recorrido a través del búfer en el que se encuentra actualmente el cursor.

Volviendo a donde estabas

Cada vez que mueva el cursor de cualquiera de estas formas, puede mover el cursor de regreso a donde estaba escribiendo '' (dos cotizaciones posteriores ). Entonces, si escribe

|_+_|

para ir al final del archivo, pero luego se da cuenta de que necesita volver a donde estaba (ya sea que recuerde dónde está o no), puede escribir

|_+_|

Para volver a su ubicación original. Esto también funciona después de realizar una búsqueda. Recuerda este comando, ¡porque es muy útil!

Líneas más allá del final de su archivo

Si está cerca del final de su archivo y la última línea no está en la parte inferior de la pantalla, nosotros imprimirá un tilde (' ~ ') en cualquier línea después del final de su archivo real. Esto indica que la última línea de su archivo está en la pantalla; es decir, cualquier línea que muestre ' ~ 'están más allá del final de su archivo. Notarás esto, por ejemplo, cuando comiences a editar un nuevo archivo: cada línea comenzará con una tilde.

Moverse por la pantalla

Como ya hemos mencionado, puede utilizar las teclas de flecha o h , j , a , y l para mover el cursor un cursor hacia la izquierda y hacia la derecha, o hacia arriba y hacia abajo una línea.

También puedes usar + para pasar a la siguiente línea o - para pasar a la línea anterior. Esto es similar a usar arriba y abajo (o j y a ), excepto que el cursor se colocará automáticamente en el primer lugar que no sea espacio en blanco personaje en la línea.

Cualquiera de estas teclas, si lo llevara antes de la primera línea en la pantalla o después de la última línea, desplazará la pantalla una línea en la dirección correcta. Pulsando el Regreso la tecla es lo mismo que presionar + . También puede colocar el cursor en la parte superior, media o inferior de la pantalla de texto que se muestra actualmente:

H lo llevará a la línea superior ('inicio') en la pantalla. Anterior H con un número lo llevará a la línea de inicio más ese número de líneas. Por ejemplo, 3H mueve el cursor a la tercera línea de texto que se muestra en la pantalla.

METRO es un comando similar: mueve el cursor al centro de la pantalla.

L mueve el cursor a la última línea de la pantalla. Si lo precede con un número, mueve el cursor a ese número de líneas antes de la última línea mostrada. Entonces 5L mueve el cursor a la quinta a la última línea que se muestra actualmente.

Moviéndose dentro de una línea

en avanzará el cursor a la siguiente palabra en la línea, y b retrocederá el cursor a la palabra anterior.

es avanza hasta el final de la palabra actual en lugar del comienzo de la siguiente.

Si las palabras están puntuadas, por ejemplo, con un apóstrofe o una coma, en y b se detendrá en la puntuación. Si utiliza EN y B en su lugar, mueven el cursor ignorando la puntuación.

Todos estos comandos se ajustan al final (o comienzo) de una línea, moviéndose a la línea anterior o siguiente si su búsqueda de la palabra siguiente o anterior llega tan lejos.

Resumen: teclas de movimiento

Aquí hay un resumen de las teclas de movimiento que acabamos de discutir y algunos extras.

Barra espaciadora avanzar el cursor una posición
^B página al revés
^ D desplazarse hacia abajo
^ E exponer una línea en la parte inferior de la pantalla
^ F página adelante
^ G Verificación de estado posicional
^ N siguiente línea, misma columna
^ P línea anterior, misma columna
^ U desplazarse hacia arriba
^Y exponer una línea en la parte superior de la pantalla
+ siguiente línea, en el primer carácter que no sea un espacio en blanco
- línea anterior, en el primer carácter que no sea un espacio en blanco
/ cuerda Escanear hacia adelante para cuerda . Si no cuerda se especifica, busca el último cuerda escaneado.
? Escanear hacia atrás para cuerda . Si no cuerda se especifica, busca el último cuerda escaneado.
B al revés una palabra, ignorando la puntuación
número de línea GRAMO Ir a especificado número de línea (un número entero). Por defecto es la última línea.
H mover el cursor a la primera línea de la pantalla
METRO línea media de la pantalla
L última línea de pantalla
EN adelantar una palabra, ignorando la puntuación
b al revés una palabra
es fin de la palabra actual
norte siguiente instancia de / o ? patrón de búsqueda
en siguiente palabra

Haciendo cambios simples

El comando más básico para realizar cambios en su archivo es el I (insertar) comando. Después de escribir I , todo lo que escribes hasta que aciertas Esc se inserta en la posición del cursor en el búfer.

El compañero del I el comando es el a ('agregar') comando. Esto funciona exactamente como I , excepto que comienza a insertar el texto después la ubicación del cursor, no a la ubicación del cursor.

A veces, desea comenzar a editar en una nueva línea justo después de la línea en la que se encuentra el cursor. Para hacer esto, use el o mando. Para comenzar una nueva línea antes de la línea en la que se encuentra el cursor, use el O mando. Como con I y a , cualquier texto que escriba se insertará en el búfer hasta que presione Esc .

Mientras inserta texto con cualquiera de estos comandos, puede usar ^ W. para borrar una palabra completa y dejar el cursor un espacio después de la palabra anterior

Una cosa a tener en cuenta es que cuando retrocede, no borrará ningún carácter que no haya insertado. Además, no puede retroceder a la línea anterior; el retroceso se detendrá cuando llegue al principio de la línea actual.

Haciendo pequeñas correcciones

Es fácil hacer pequeñas correcciones en nosotros . Si necesita eliminar un carácter que no debería estar allí, mueva el cursor sobre él y presione x para eliminarlo. También puede proporcionar un número antes de presionar x y eliminará esa cantidad de caracteres. Entonces, si tienes la palabra ' descubrimiento ', y mueve el cursor sobre el v y escriba

|_+_|

... te quedarás con la palabra ' disco '.

Si desea reemplazar un solo carácter con otro carácter, mueva el cursor sobre él y presione r y luego el personaje que debería reemplazarlo. Entonces, si escribe ' confundir ', y mueva el cursor sobre el' o 'y escriba

|_+_|

...la o será reemplazado por un a , dejándote con la palabra ' Error .'

La R El comando es similar, pero puede usarlo para reemplazar más de un carácter; si presiona R y comience a escribir, cada carácter que escriba reemplazará a todos los caracteres que ya estaban allí. Entonces, si tienes la palabra ' Error ', y mueve el cursor sobre la letra t y escriba

|_+_|

... verás que la palabra ' Error 'se ha convertido en la palabra' misil '. También puede notar que si retrocede en este modo, su texto original se restaurará, letra por letra. Cuando termines, presiona Esc para dejar de reemplazar caracteres.

Operadores

El comando D actúa como un eliminar operador : presionando D y luego una tecla de movimiento borrará donde se hubiera movido el cursor. Por ejemplo, escribiendo dw eliminará la siguiente palabra y escribiendo db eliminará hacia atrás a la palabra anterior. Mecanografía D SPACE eliminará un carácter; esto es lo mismo que escribir x .

Otro operador útil es c , Lo que significa cambio . El comando cw cambiará una sola palabra: eliminará todo hasta el final de una palabra y lo colocará en el modo de inserción para escribir el texto que debe reemplazarlo.

Repitiendo un cambio

Cada vez que realice un cambio con un comando, puede escribir ' . 'para repetir el cambio. Entonces, si borra una palabra con dw , mecanografía . también eliminará la siguiente palabra. Puede repetir esto una y otra vez escribiendo . varias veces, como una elipsis (' ... ').

Operando en líneas

Mecanografía dd eliminará una línea completa.

Mecanografía cc cambiará una línea completa, eliminándola y colocándolo en modo de inserción.

Puede eliminar o cambiar más de una línea a la vez precediendo dd o cc con un número. Por ejemplo, 5dd eliminará 5 líneas. También puedes dar un comando como dL que eliminará todas las líneas desde el cursor hasta la última línea de la pantalla incluida, o d3L que eliminará todas las líneas desde el cursor hasta la penúltima línea. Cuando realiza grandes cambios como este, especialmente si realiza cambios que van más allá de lo que puede ver en una pantalla, el editor le da un mensaje que le dice lo que se ha hecho.

Ruina

Para deshacer el último cambio, escriba tu . Para rehacer (para deshacer un deshacer), escriba tu de nuevo.

a diferencia de yo vine , nosotros solo ofrece un nivel de deshacer. Sin embargo, puede utilizar U (U mayúscula) para deshacer los cambios realizados en la línea actual; prensado U restaura la línea actual a la forma en que estaba antes de comenzar a cambiarla.

Resumen: hacer cambios

ESPACIO Avance el cursor una posición.
^ W. Borre una palabra durante la inserción.
. Repite el último comando de cambio.
O Abre e ingresa una nueva línea, por encima de la línea actual.
U Deshace los cambios que realizó en la línea actual.
a Agrega texto después del cursor.
c Cambia el objeto que especifica al texto que escribe después.
D Elimina el objeto que especifique.
I Inserta texto antes del cursor.
o Abre e ingresa nuevas líneas, debajo de la línea actual.
tu Deshace el último cambio.

Reorganizar y duplicar texto

Movimientos de personajes de bajo nivel

F x mueve el cursor encuentra el siguiente x carácter en la línea actual. Después de eso, si presiona ; su cursor se mueve a la siguiente aparición del mismo carácter. F es un comando similar, pero busca hacia atrás en la misma línea, en lugar de hacia adelante.

La F y F Los comandos se pueden combinar, por ejemplo, con el D mando. Mecanografía df x eliminará todo desde el cursor hasta la próxima aparición de x En la linea. A veces desea eliminar hasta, pero sin incluir, la siguiente aparición del carácter x . En este caso, use el comando DT x . t significa 'a'.

El comienzo de la línea está representado por cero (' 0 '), la No (' ^ ') representa el primer carácter que no es un espacio en blanco en la línea, y el final de la línea está representado por el signo de dólar (' $ '). Si presiona ^ , el cursor se colocará en el primer carácter de la línea que no sea un espacio en blanco; si presiona 0 , el cursor se colocará al principio de la línea; y si presionas $ , el cursor se colocará al final de la línea.

Para eliminar todo, desde el cursor hasta el final de la línea, escriba d $ . Para eliminar todo, desde el cursor hasta el principio de la línea, escriba d0 ... y así.

Objetos de texto de nivel superior

A veces es útil moverse en unidades de oraciones completas. La ( y ) los comandos se mueven al comienzo de las oraciones anterior y siguiente, respectivamente. Entonces el comando D) elimina todo hasta el final de la oración actual; y D( elimina todo hasta el comienzo de la oración actual, o toda la oración anterior si ya está al comienzo de una oración.

Una oración se define como terminada en período (' . '), punto de exclamación (' ! '), o signo de interrogación (' ? ') que va seguido del final de la línea o de un espacio. Cualquier cantidad de cierre ) , ] , ' , y ' los caracteres pueden aparecer después de la . , ? , o ! antes del espacio o al final de la línea.

La { y } los comandos se mueven sobre los párrafos y las operaciones [[ y ]] moverse sobre las secciones. Una 'sección' puede definirse mediante una macro especial o mediante un avance de formulario al principio de una línea.

Reorganizar y duplicar texto

El editor tiene un búfer especial sin nombre donde se guarda el último texto eliminado o modificado, y un conjunto de búferes con nombre a mediante con que puede utilizar para guardar copias de texto y mover texto en su archivo (o archivos).

La y comando 'tira' una copia de un objeto en el búfer sin nombre. Si está precedido por un nombre de búfer, coloca este objeto en el búfer con nombre. La forma de especificar el búfer es comillas dobles ( ' ), luego una letra a - con , entonces el y mando. Entonces 'sí arrastrará un objeto al búfer llamado a .

El texto de un búfer (ya sea el búfer sin nombre o uno de sus búferes con nombre) se puede pegar en su documento con los comandos pag o PAG . pag pegará el contenido del búfer después de la ubicación del cursor (como un anexo), y PAG pegará el contenido del búfer en la ubicación del cursor (como una inserción).

Si el texto que tiras forma parte de una línea, o es un objeto como una oración que ocupa parcialmente más de una línea, entonces cuando vuelvas a colocar el texto, se colocará después del cursor (o antes de él si usaste PAG ). Si el texto extraído forma líneas completas, se volverán a colocar como líneas completas, sin cambiar la línea actual. En este caso, la pasta actúa mucho más como un o o O mando. Entonces, el comando YP hará una copia de la línea actual y lo colocará en la ubicación de la copia, que se coloca antes de la línea actual. Y es una abreviatura conveniente para yy .

El comando Yp también hará una copia de la línea actual y la colocará después de la línea actual. Puedes dar Y varias líneas para tirar, y así duplicar varias líneas; por ejemplo, 3YP duplicará tres líneas y las colocará antes de la línea actual.

Para mover texto dentro del búfer, debe eliminarlo en un lugar y volver a colocarlo en otro. Puede preceder una operación de eliminación por el nombre de un búfer en el que se almacenará el texto, como en 'a5dd , que elimina 5 líneas en el búfer nombrado a . A continuación, puede mover el cursor al lugar de descanso final de estas líneas y hacer una 'ap o 'aP para volver a ponerlos. De hecho, puede cambiar y editar otro archivo antes de volver a colocar las líneas, dando un comando del formulario :es nombre , dónde nombre es el nombre del otro archivo que desea editar. Tendrá que escribir el contenido del búfer del editor actual (o descartarlo) si ha realizado cambios, antes de que el editor le permita editar un nuevo archivo.

Un comando de borrado normal guarda el texto en el búfer sin nombre, de modo que un pegado normal lo volverá a colocar en el archivo. Sin embargo, el búfer sin nombre se pierde cuando cambia los archivos, por lo que para mover texto de un archivo a otro debe usar un búfer con nombre.

Resumen de mover y reorganizar texto

^ Primer carácter que no es un espacio en blanco en la línea.
0 Comienzo de la línea.
$ Final de la línea.
) Avanzar al siguiente salto de oración.
( Hacia atrás a la ruptura de la oración anterior.
} Avanzar al siguiente salto de párrafo.
{ Hacia atrás al salto de párrafo anterior.
]] Avanzar al siguiente salto de sección.
[[ Hacia atrás al salto de sección anterior.
F x Encontrar personaje x adelante en la línea.
F x Encontrar personaje x al revés en la línea.
pag Pega el texto después del cursor.
PAG Pega el texto antes del cursor.
y Tirón.
Y Tira toda una línea.
t Adelante al personaje x , para operaciones.
T x Volver al personaje x , para operaciones.

Comandos de alto nivel

Escribir, salir y editar archivos nuevos

Hasta ahora hemos visto cómo escribir nuestro archivo en el disco y salir ( ZZ ), o simplemente escriba nuestro archivo y continúe editando ( :en ).

Si ha cambiado su archivo pero quiere salir sin guardar, use el comando :q! . El comando :q sale del editor, pero solo le permitirá hacer esto si no ha realizado ningún cambio desde su última escritura (su último guardado). El signo de exclamación, sin embargo, le dice al editor 'sí, realmente quiero hacer esto'.

Del mismo modo, puede editar otro archivo con el :es nombre comando, donde nombre es el nombre del archivo que desea editar. Pero el editor no le permitirá hacer esto si tiene cambios sin guardar. Sin embargo, si vuelve a utilizar el signo de exclamación ( :¡es! nombre ), el editor hará lo que le pida: descartará sus cambios y abrirá el archivo nombre para editar.

Si no especifica un nombre de archivo y solo usa el comando :¡es! , el editor volverá a cargar su versión guardada del archivo en el que está trabajando. Esto es como el comando 'revertir' en otros editores de archivos. Descartará sus cambios y volverá a la última versión guardada del archivo.

Escapar al caparazón

Si desea ejecutar un comando de shell sin salir del editor, puede usar el comando :! mando . El sistema ejecutará el comando mando , y cuando finalice el comando, el editor le pedirá que presione Entrar antes de regresar a la pantalla de edición. También puedes regalar otro : comando cuando le pide que presione Enter; esto ejecutará el siguiente comando sin volver a dibujar la pantalla.

Si desea pasar por completo al símbolo del sistema de su shell, use el comando : sh . Esto lo llevará a su caparazón, donde podrá usarlo como lo haría normalmente; cuando termines, escribe Control-D ( ^ D ), y volverá a nosotros .

En muchos sistemas, también puede simplemente escribir ^ Z desde dentro del editor en cualquier momento para colocarlo en su caparazón. Esto técnicamente pone nosotros en el fondo. Devolver a nosotros , tipo fg ('primer plano') en la línea de comandos de su shell, y nosotros volverá a ser su proceso de primer plano.

Marcando y devolviendo

Como ya se mencionó, el comando '' (dos comillas inversas) lo devuelve al lugar anterior después de un movimiento del cursor mediante un comando como / , / , o GRAMO . También puede marcar su posición en el archivo con etiquetas de una sola letra y volver a estas marcas más tarde. El marcado se realiza con el comando metro x , dónde x es la letra que desea asignar a la marca. Para volver al lugar que marcó, puede usar el comando ' x

Por ejemplo, si escribe mamá , marcará la posición actual del cursor con la letra a . Luego, si mueve el cursor a cualquier otro lugar del archivo, siempre puede volver a esa línea con el comando 'a . Las marcas duran hasta que comience a editar otro archivo, o hasta que sobrescriba la marca configurándola en otro lugar.

Cuando se utilizan operadores como D y refiriéndose a las líneas marcadas, a veces querrá referirse a la línea que marcó, y no a la posición real del cursor dentro de la línea. En cualquier momento, puede utilizar ' x (Opuesto a ' x ) para hacer referencia a la línea en sí. Entonces, el comando D' a eliminará todo, desde la posición actual del cursor hasta la posición exacta en la marca a , mientras que el comando d'a eliminará todo hasta (incluida) la línea completa donde marca a reside.

Utilizado sin operador, ' x lo mueve al primer carácter que no es un espacio en blanco en la línea donde marca x reside.

Ajustar la pantalla

Si la imagen de la pantalla está alterada por algún motivo, puede actualizar la pantalla con Control-L ( ^ L ).

Si desea centrar la pantalla en su cursor en cualquier momento, escriba con- . Para ajustar la pantalla de modo que la línea con el cursor esté en la parte superior de la pantalla, escriba con y presione Entrar. Para ajustar la pantalla de modo que la línea con el cursor esté en la parte inferior de la pantalla, escriba con. .

zz es lo mismo que con- y centrará la pantalla de modo que la línea con el cursor esté en el centro de la pantalla.

Temas especiales

Configuración de opciones y uso de archivos de inicio del editor

El editor tiene un conjunto de opciones, que puede configurar con el :colocar mando. Para configurar la opción optar valorar horas , usa el comando :colocar optar = horas .

Las opciones de alternancia se pueden configurar con los comandos colocar optar y desarmar con el comando establecer no optar .

Estas son algunas de las opciones más útiles que puede configurar:

nombre de la opción valor por defecto descripción
sangría automática noai Suministro de sangría automáticamente
escritura automática noaw Escribir automáticamente en un archivo durante la edición
ignorar caso noico Ignorar mayúsculas y minúsculas al buscar
ceceo nolisp ( , { , ) , y } los comandos tratan con expresiones-S
lista nolista Las pestañas se imprimen como ^ Yo ; final de las líneas marcadas con $
magia nomágico Los caracteres . , [ , y * son especiales ('mágicos') en los escaneos
número nonu Las líneas se muestran con el prefijo de sus números de línea
párrafos para=IPLPPPQPbpP LI Nombres de macros que inician párrafos
volver a dibujar nore Simular un terminal inteligente en un terminal tonto
secciones secta = NHSHH Nombres de macros HU que inician nuevas secciones
ancho de turno sw = 8 Distancia de cambio para < , > y otros comandos de 'cambio'
showmatch nosm Mostrar coincidencia ( o { ubicaciones como ) o } se escribe, por ejemplo
mostrar moda nosmd Mostrar descripción del modo de entrada
lento abierto lento Posponer las actualizaciones de la pantalla durante las inserciones
término tonta El tipo de terminal que estás usando

Estas declaraciones se pueden colocar en el Variable ambiental SALIR , o puede administrarse mientras está corriendo nosotros precediéndolos con un : , como se describió anteriormente.

Puede ver una lista de todas las opciones y sus configuraciones escribiendo :colocar dentro nosotros en cualquier momento. Para ver la configuración actual de una opción en particular, use el comando :colocar optar ? .

colocar se puede abreviar como se . Se pueden configurar múltiples opciones en una línea, por ejemplo : se ai aw nu .

Opciones configuradas con :colocar solo dura para su sesión de editor actual.

Si desea colocar su configuración predeterminada en la variable de entorno SALIR para que se carguen cada vez que corras nosotros , puede especificar varios comandos en una sola línea separándolos con la barra vertical (' | '). Por ejemplo, si su caparazón es csh , podrías configurar SALIR con el siguiente comando de shell:

|_+_|

Recuperando líneas perdidas

Es posible que tenga un problema si elimina varias líneas y luego las quiere de vuelta. Sin embargo, el editor guarda los últimos 9 bloques de texto eliminados en un conjunto de registros numerados 1 mediante 9 . Puedes conseguir el norte El texto eliminado anterior vuelve a su archivo con el comando ' norte pag . Estos son similares a los búferes con nombre, excepto que se refieren al número del bloque de texto anterior que se eliminó.

Por lo general, cuando escribe un solo período (' . '), repite el último cambio que ha realizado. Como caso especial, cuando este período repite un cambio que se refiere a un búfer numerado, el número se incrementa antes de que se repita el comando. Veamos cómo funciona esto y por qué es útil:

Digamos que eliminó algo importante y sabe que está en una de sus nueve eliminaciones de bloque anteriores, pero no está seguro de cuál. Si desea volver atrás y ver los nueve bloques eliminados anteriormente, así es como puede hacerlo: puede usar el comando

|_+_|

Para pegar el contenido del texto eliminado más recientemente (número de búfer 1 ). Si ese no es el texto que desea, puede deshacer ( tu ) y repita el comando con . , pegando el comando de búfer 2 . En otras palabras, escribiendo el comando

|_+_|

es lo mismo que escribir

|_+_|

y puede regresar fácilmente a los búferes numerados hasta que encuentre el texto que desea recuperar.

El comando PAG puede, por supuesto, usarse en lugar de pag en el ejemplo anterior, para colocar el texto antes del cursor en lugar de después.

Recuperar archivos perdidos

Si el sistema falla, puede recuperar el trabajo que estaba haciendo con unos pocos cambios. Cuando regrese a su sistema, use este comando para comenzar nosotros :

|_+_|

Dónde nombre es el nombre del archivo que estaba editando. Esto recuperará su trabajo a un punto lo más cerca posible de donde lo dejó.

Si no especifica un archivo con nombre y en su lugar solo escribe

|_+_|

luego recibirá una lista de archivos que se pueden recuperar.

Entrada de texto continua

Cuando está escribiendo una gran cantidad de texto, es conveniente que las líneas se dividan cerca del margen derecho automáticamente. Puede hacer que esto suceda dando el comando : se wm = 10 . Esto hace que todas las líneas se dividan en un espacio de al menos 10 columnas desde el borde derecho de la pantalla.

Si el editor rompe una línea de entrada y desea volver a unirla, puede decirle que una las líneas con J . Puedes dar J un recuento del número de líneas que se unirán como en 3J para unir 3 líneas. El editor proporciona un espacio en blanco, si corresponde, en la unión de las líneas unidas y deja el cursor en este espacio en blanco. Puedes matar el espacio en blanco con x si no lo quieres.

Funciones para editar programas

El editor tiene varios comandos para editar programas. Lo que más distingue la edición de programas de la edición de texto es la estructura con sangría en el cuerpo del programa. El editor tiene un sangría automática facilidad para ayudarle a generar programas correctamente sangrados.

Para habilitar esta facilidad puede dar el comando : si usted tiene . Ahora intente abrir una nueva línea con o y escriba algunos caracteres en la línea después de algunas pestañas. Si ahora comienza otra línea, observe que el editor proporciona un espacio en blanco al comienzo de la línea para alinearla con la línea anterior. No puede retroceder sobre esta sangría, pero puede usar ^ D clave para colocar sobre la muesca suministrada.

Cada vez que escribes ^ D retrocede una posición, normalmente hasta un límite de 8 columnas. Esta cantidad es configurable; el editor tiene una opción llamada ancho de turno que puede configurar para cambiar este valor. Intenta dar la orden : se sw = 4 y luego experimentar con sangría automática de nuevo.

Para desplazar líneas en el programa hacia la izquierda y hacia la derecha, hay operadores < y > . Estos desplazan las líneas que especifique hacia la derecha o hacia la izquierda en un ancho de turno. Intentar << y >> que se desplazan una línea hacia la izquierda o hacia la derecha, y y > L desplazando el resto de la pantalla hacia la izquierda y hacia la derecha.

Si tiene una expresión complicada y desea ver cómo coinciden los paréntesis, coloque el cursor en un paréntesis izquierdo o derecho y presione % . Esto le mostrará el paréntesis correspondiente. Esto también funciona para aparatos ortopédicos. { y } y corchetes [ y ] .

Si está editando C programas, puede utilizar el [[ y ]] claves para avanzar o retroceder a una línea que comienza con un { , es decir, una declaración de función a la vez. Cuándo ]] se usa con un operador, se detiene después de una línea que comienza con } ; esto a veces es útil con y]] .

Filtrar porciones del búfer

Puede ejecutar comandos del sistema sobre porciones del búfer utilizando el operador ! (el signo de exclamación). Esencialmente, envía una sección de su archivo como entrada estándar a un comando de shell, luego reemplaza esa parte de su texto con la salida estándar del comando.

En conjunto, la forma de especificar qué texto enviar y a qué comando enviarlo es ! (especificador-movimiento) nombre-comando . La especificador de movimiento podría ser en para operar en la siguiente palabra, por ejemplo, o } para el siguiente párrafo, etc. nombre-comando es el comando de shell y cualquier argumento que pueda tomar.

Esto es especialmente útil para ordenar usando el clasificar mando. Puede usar esto para ordenar líneas en su archivo. Por ejemplo, si tuviera que escribir una lista de palabras al azar, una por línea, y terminarlas con una línea en blanco, entonces retrocedió hasta el principio de la lista y dio el comando !}clasificar , esto ordenaría los datos que acaba de escribir, justo delante de sus ojos. ¡Esta es una función muy poderosa! Pruébelo usted mismo.

Comandos para editar código LISP

Si está editando un CECEO programa, debe configurar la opción ceceo haciendo :se lisp . Esto cambia el ( y ) comandos para retroceder y avanzar sobre las expresiones-s. La { y } los comandos son como ( y ) pero no te detengas en los átomos. Estos se pueden utilizar para pasar a la siguiente lista o mediante una comentario rápidamente.

La sangría automática La opción funciona de manera diferente para LISP, proporcionando sangría para alinearse en el primer argumento con la última lista abierta. Si no existe tal argumento, la sangría es dos espacios más que el último nivel.

Hay otra opción que es útil para escribir en LISP, la showmatch opción. Intente configurarlo con : se sm y luego intente escribir un ' ( ', algunas palabras, y luego un' ) '. Observe que el cursor muestra la posición del ' ( 'que coincide con' ) ' brevemente. Esto sucede solo si la coincidencia ' ( 'está en la pantalla y el cursor permanece allí durante un segundo como máximo.

El editor también tiene un operador para realinear las líneas existentes como si hubieran sido escritas con ceceo y sangría automática colocar. Este es el = operador. Prueba el comando =% al comienzo de un función . Esto realineará todas las líneas de la declaración de función.

Cuando edita LISP, el [[ y ]] avanzar y retroceder a las líneas que comienzan con un ( , y son útiles para tratar con definiciones de funciones completas.

Macros

nosotros tiene un parámetro sin parámetros macro instalación, que le permite configurarlo para que cuando presione una sola tecla, el editor actúe como si hubiera presionado una secuencia de teclas más larga. Puede configurar esto si se encuentra escribiendo la misma secuencia de comandos repetidamente.

Hay dos tipos generales de macros:

  1. Aquellos en los que pones el cuerpo de la macro en un búfer de macro con nombre x . Luego puede escribir @ x para invocar la macro. La @ puede ser seguido por otro @ para repetir la última macro.
  2. Puede utilizar el comando map desde nosotros (normalmente en tu SALIR variable de entorno) con un comando de la forma:

    vi [ -| -s ] [-l] [-L] [-R] [ -r [  filename  ] ] [-S] [-t  tag  ] [-v] [-V] [-x] [-w] [-n ] [-C] [+  command  | -c  command  ]  filename  
    cartografía lhs dentro rhs . Hay restricciones: lhs debe ser una pulsación de tecla (ya sea 1 carácter o una tecla de función) ya que debe ingresarse en un segundo (a menos que notimeout está configurado, en cuyo caso puede escribirlo tan lentamente como desee, y nosotros esperará a que lo termine antes de que se haga eco de algo). Las lhs no pueden tener más de 10 caracteres, rhs no más de 100. Para obtener un espacio, tabulación o nueva línea dentro lhs o rhs deberías escapar de ellos con un ^ V . Puede ser necesario duplicar el ^ V si el comando del mapa se da dentro nosotros , en lugar de en ex . Espacios y pestañas dentro del rhs no es necesario escapar.

Por lo tanto, para hacer el q escriba la tecla y salga del editor, puede dar el comando

|_+_|

lo que significa que cada vez que escribes q , será como si hubiera escrito los cuatro caracteres : wqCR . A ^ V es necesario porque sin él el retorno de carro terminaría el : comando, en lugar de convertirse en parte de la definición del mapa. Hay dos ^ V es porque desde dentro nosotros , dos ^ V Debes escribirlo para obtener uno. El primer CR es parte del rhs , el segundo termina el : mando.

Las macros se pueden eliminar con

|_+_|

Si el lhs de una macro es ' #0 ' mediante ' #9 ', esto asigna la tecla de función particular en lugar del carácter 2' # ' secuencia. Para que los terminales sin teclas de función puedan acceder a tales definiciones, el formulario ' #x 'significa tecla de función x en todos los terminales (y no es necesario escribirlo en un segundo). El personaje ' # 'se puede cambiar usando una macro de la forma habitual:

|_+_|

para usar tabulador, por ejemplo. Esto no afectará al mapa comando, que todavía usa # , pero solo la invocación desde el modo visual.

La deshacer El comando invierte una llamada de macro completa como una unidad, si realizó algún cambio.

Colocando un ' ! 'después del mapa de palabras hace que el mapeo se aplique al modo de entrada, en lugar del modo de comando. Por lo tanto, para organizar ^ T para que sea igual a 4 espacios en el modo de entrada, puede escribir:

|_+_|

dónde b/ es un espacio en blanco. La ^ V Es necesario evitar que los espacios en blanco se tomen como espacios en blanco entre los lhs y rhs .

Abreviaturas de palabras

Una característica similar a las macros en el modo de entrada es la abreviatura de palabras. Esto le permite escribir una palabra corta y expandirla en una palabra o palabras más largas. Los comandos son :abreviar y : no abreviado ( :de y :una ) y tienen la misma sintaxis que :mapa . Por ejemplo:

|_+_|

causa la palabra ' eecs 'ser siempre cambiado a la frase' Ingeniería Eléctrica y Ciencias de la Computación '. La abreviatura de palabras se diferencia de las macros en que solo se ven afectadas las palabras completas. Si ' eecs 'se escribieron como parte de una palabra más grande, se dejaría solo. Además, la palabra parcial se repite a medida que se escribe. No es necesario que una abreviatura sea una sola pulsación de tecla, como debería ser con una macro.

Detalles técnicos

Representación de líneas en la pantalla

El editor pliega largas líneas lógicas en muchas líneas físicas en la pantalla. Los comandos que avanzan las líneas avanzan las líneas lógicas y saltan todos los segmentos de una línea en un solo movimiento. El comando | mueve el cursor a una columna específica y puede ser útil para acercarse a la mitad de una línea larga y dividirla por la mitad.

El editor solo muestra líneas completas en la pantalla; Si no hay suficiente espacio en la pantalla para caber en una línea lógica, el editor deja la línea física vacía, colocando solo una @ en la línea como marcador de posición. Cuando elimina líneas en una terminal tonta, el editor a menudo simplemente borrará las líneas para @ para ahorrar tiempo (en lugar de reescribir el resto de la pantalla). Siempre puede maximizar la información en la pantalla dando la ^ R mando.

Si lo desea, puede hacer que el editor coloque números de línea antes de cada línea en la pantalla. Dar la orden : si no para habilitar esto, y el comando : si noveno para apagarlo. Puede hacer que las pestañas se representen como ^ Yo y los extremos de las líneas indicados con ' $ 'dando la orden :se list ; :se nolist apaga esto.

Finalmente, las líneas que constan solo del carácter ' ~ 'se muestran cuando la última línea del archivo está en el medio de la pantalla. Estos representan líneas físicas que están más allá del final lógico del archivo.

Más comandos de manipulación de archivos

La siguiente tabla enumera los comandos de manipulación de archivos que puede utilizar cuando se encuentra en nosotros .

:en Escribe los cambios.
: wq Escriba y salga.
:x Escriba (si es necesario) y salga (igual que ZZ ).
:es nombre Editar archivo nombre .
:¡es! Reeditar, descartar cambios.
: y + nombre Edite, comenzando por el final.
: y + norte Editar, comenzando en la línea norte .
:es # Edite el archivo alternativo.
:en nombre Escribir archivo nombre .
:¡en! nombre Archivo de sobrescritura nombre .
: x , y en nombre Escribir líneas x mediante y a nombre .
: r nombre Leer archivo nombre dentro .
: r! cmd Leer salida de cmd en buffer.td>
: norte Edite el siguiente archivo en la lista de argumentos.
: norte ! Edite el siguiente archivo, descartando los cambios al actual.
: norte argumentos Especifique una nueva lista de argumentos.
: ta etiqueta Editar archivo que contiene la etiqueta etiqueta , a etiqueta .

Todos estos comandos van seguidos de CR o Esc. Los comandos más básicos son :en y :es . Una sesión de edición normal en un solo archivo terminará con un ZZ mando. Si está editando durante un largo período de tiempo, puede dar :en comandos de vez en cuando después de grandes cantidades de edición, y luego termine con un ZZ . Cuando edita más de un archivo, puede terminar con uno con un :en y comience a editar un nuevo archivo dando un :es comando, o establecer escritura automática y use :norte expediente .

Si realiza cambios en la copia del editor de un archivo, pero no desea volver a escribirlos, debe proporcionar una ! después del comando que de otro modo usaría; esto obliga al editor a descartar cualquier cambio que haya realizado. Use esto con cuidado.

La :es se puede dar un comando + argumento para comenzar al final del archivo, o un + norte argumento para comenzar en la línea norte . En la actualidad, norte puede ser cualquier comando del editor que no contenga un espacio, útilmente un escaneo como +/ palmadita o +? palmadita . Al formar nuevos nombres para el es comando, puedes usar el carácter % que se reemplaza por el nombre del archivo actual, o el carácter # que es reemplazado por el archivo alternativo nombre . El archivo alternativo nombre es generalmente el apellido que ingresó además del archivo actual. Por lo tanto, si intentas hacer un :es y obtienes un diagnóstico de que no has escrito el archivo, puedes dar un :en comando y luego un :es # comando para rehacer lo anterior :es .

Puede escribir parte del búfer en un archivo descubriendo las líneas que delimitan el rango que se va a escribir usando ^ G , y dando estos números después de la : y antes del en , separado por , 's. También puede marcar estas líneas con metro y luego use una dirección del formulario ' x , ' y sobre el en comando aquí.

Puede leer otro archivo en el búfer después de la línea actual usando el : r mando. De manera similar, puede leer en la salida de un comando, solo use ! cmd en lugar de un nombre de archivo.

Si desea editar un conjunto de archivos en sucesión, puede dar todos los nombres en la línea de comando y luego editar cada uno por turno usando el comando :norte . También es posible volver a especificar la lista de archivos a editar dando la :norte ordenar una lista de nombres de archivos, o un patrón que se expandirá como lo hubiera dado en la inicial nosotros mando.

Si está editando programas grandes, el : ta El comando es muy útil. Utiliza una base de datos de nombres de funciones y sus ubicaciones, que pueden ser creadas por programas como ctags , para encontrar rápidamente una función cuyo nombre le asigne. Si el : ta El comando requiere que el editor cambie de archivo, entonces debe :en o abandonar cualquier cambio antes de cambiar. Puedes repetir el : ta comando sin ningún argumento para buscar la misma etiqueta nuevamente.

Más sobre la búsqueda de cadenas

Cuando busca cadenas en el archivo con / y ? , el editor normalmente lo ubica en la ocurrencia siguiente o anterior de la cadena. Si está utilizando un operador como D , c o y , entonces es posible que desee afectar las líneas hasta la línea anterior a la línea que contiene el patrón. Puedes dar una búsqueda del formulario / palmadita /- norte para referirse a la norte 'th línea antes de la siguiente línea que contiene palmadita , o puedes usar + en vez de - para referirse a las líneas después de la que contiene palmadita . Si no da un desplazamiento de línea, entonces el editor afecta a los caracteres hasta el lugar de coincidencia, en lugar de líneas completas; así usar ' +0 'para afectar a la línea que coincide.

Puede hacer que el editor ignore el caso de las palabras en las búsquedas que realiza dando el comando : se ic . El comando :se noic apaga esto.

Las cadenas dadas a las búsquedas pueden ser expresiones regulares . Si no desea o necesita esta instalación, debe

|_+_|

en tus SALIR . En este caso, solo los personajes ^ y $ son especiales en patrones. El personaje también es especial (como ocurre en la mayoría de los lugares del sistema) y se puede utilizar para obtener una función de coincidencia de patrones extendida. También es necesario utilizar un antes de / en un escaneo hacia adelante o un ? en un escaneo hacia atrás, en cualquier caso. La siguiente tabla muestra las formas extendidas cuando se establece la magia.

^ Al comienzo del patrón, coincide con el comienzo de la línea.
$ Al final del patrón, coincide con el final de la línea.
. Coincide con cualquier personaje.
< Coincide con el comienzo de una palabra.
> Coincide con el final de una palabra.
[ pag ] Coincide con cualquier carácter individual en pag .
[ pag ] Coincide con cualquier carácter individual que no esté en pag .
[ x - y ] Coincide con cualquier carácter entre x y y .
* Coincide con cualquier número del patrón anterior.

Si utiliza nomágico modo, entonces el . [ y * las primitivas se dan con un precedente .

Más sobre el modo de entrada

Hay una serie de caracteres que puede utilizar para realizar correcciones durante el modo de entrada. Estos se resumen en la siguiente tabla.

^ H Elimina el último carácter ingresado.
^ W. Elimina la última palabra de entrada, definida como por b .
borrar Tu personaje de borrado, igual que ^ H .
matar Tu personaje asesino borra la entrada en esta línea.
Se escapa de un seguimiento ^ H y tu borra y mata.
Esc Finaliza una inserción.
Del Interrumpe una inserción y la termina de forma anormal.
CR Inicia una nueva línea.
^ D Tabulaciones sobre la sangría automática.
0 ^ D Mata a todos los autoindent.
^^ D (Caret-control-D) igual que 0 ^ D , pero restaura la sangría en la siguiente línea.
^ V Cita el siguiente carácter no imprimible en el archivo.

La forma más habitual de realizar correcciones en la entrada es escribiendo ^ H para corregir un solo carácter, o escribiendo uno o más ^ W. es para retroceder sobre palabras incorrectas. Si utiliza # como su carácter de borrado en el sistema normal, funcionará como ^ H .

Tu sistema mata al personaje, normalmente @ , ^X o ^ U , borrará todos los datos ingresados ​​en la línea actual. En general, no puede borrar la entrada alrededor de un límite de línea ni puede borrar caracteres que no haya insertado con este comando de inserción. Para hacer correcciones en la línea anterior después de que se haya iniciado una nueva línea, puede presionar Esc para finalizar la inserción, moverse y hacer la corrección, y luego regresar a donde estaba para continuar. El comando A que se agrega al final de la línea actual suele ser útil para continuar.

Si desea escribir su carácter borrar o matar (diga # o @ ) entonces debe precederlo con un , tal como lo haría en el nivel de comando del sistema normal. Una forma más general de escribir caracteres no imprimibles en el archivo es precederlos con un ^ V . La ^ V resuena como un ^ carácter sobre el que descansa el cursor. Esto indica que el editor espera que escriba un carácter de control. De hecho, puede escribir cualquier carácter y se insertará en el archivo en ese momento.

Si esta usando sangría automática puede aplicar una tabulación hacia atrás sobre la sangría que proporciona escribiendo un ^ D . Esto respalda a un ancho de turno Perímetro. Esto solo funciona inmediatamente después del suministro sangría automática .

Cuando estas usando sangría automática es posible que desee colocar una etiqueta en el margen izquierdo de una línea. La forma de hacer esto fácilmente es escribir ^ y entonces ^ D . El editor mueve el cursor al margen izquierdo de una línea y restaura la sangría anterior en la siguiente. También puede escribir un 0 seguido inmediatamente por un ^ D si desea eliminar toda la sangría y no volver a la siguiente línea.

Terminales solo en mayúsculas

Si su terminal solo tiene mayúsculas, aún puede usar nosotros utilizando la convención normal del sistema para escribir en dicho terminal. Los caracteres que escribe normalmente se convierten a minúsculas y puede escribir letras mayúsculas precediéndolas con un . Los caracteres { ~ } | ' no están disponibles en dichos terminales, pero puede escapar de ellos como ( ^ ) ! ' . Estos caracteres se representan en la pantalla de la misma forma en que se escriben.

Vi y ex

nosotros es en realidad un modo de edición dentro del editor ex . Cuando estas corriendo nosotros puede escapar al editor orientado a líneas de ex dando la orden Q . Todos : Los comandos que se introdujeron anteriormente están disponibles en ex . Asimismo, la mayoría ex los comandos se pueden invocar desde nosotros utilizando : . Solo dáselos sin el : y sígalos con un CR.

En raras ocasiones, puede producirse un error interno en nosotros . En este caso, obtiene un diagnóstico y se deja en el modo de comando de ex . A continuación, puede guardar su trabajo y salir si lo desea dando un comando x después de la : cual ex le solicita, o puede volver a ingresar nosotros al dar ex a nosotros mando.

Hay varias cosas que puede hacer más fácilmente en ex que en nosotros . Los cambios sistemáticos en material orientado a líneas son particularmente fáciles. Puede leer los documentos de edición avanzada para el editor. ed para obtener más información sobre este estilo de edición. Los usuarios experimentados a menudo mezclan el uso de ex modo de comando y nosotros modo de comando para acelerar el trabajo que están haciendo.

Referencia rápida

Este es un resumen de todos los más útiles nosotros comandos. Consúltelo cada vez que necesite recordar alguno de nosotros funciones de forma rápida y de un vistazo.

Entrar / salir del editor

Desde la línea de comando:

nosotros nombre Lanzamiento nosotros y cargue el archivo nombre .
nosotros + norte nombre Lanzamiento nosotros y cargue el archivo nombre , colocando el cursor en la línea norte .
nosotros -t etiqueta Lanzamiento nosotros y comience a editar en etiqueta .
nosotros -r Enumere los archivos que se pueden recuperar.
nosotros -r nombre Lanzamiento nosotros y recuperar un archivo editado previamente nombre .
nosotros nombre1 nombre2 ... Lanzamiento nosotros , cargando archivo nombre1 para editar; cualquier otro archivo nombrado se carga con el :norte mando.
nosotros -R nombre Lanzamiento nosotros y cargue el archivo nombre en modo de solo lectura.

Desde dentro nosotros :

ZZ Salir de nosotros , guardando cambios.
^ Z Fondo nosotros y regrese al shell de comandos. Reanudar primer plano nosotros operación con el fg comando incorporado de shell.

Manipulación de archivos

:en Escribe los cambios (guarda el archivo).
: wq Escriba los cambios (guarde) y salga.
:q Salga de inmediato, si no hay cambios sin guardar.
:q! Salga de inmediato y descarte los cambios que no haya guardado.
:es nombre Editar archivo nombre .
:¡es! Vuelve a la última versión guardada del archivo actual.
:es + nombre Cargar archivo nombre para editar, colocando el cursor al final del archivo.
:es + norte nombre Cargar archivo nombre para editar, comenzando en la línea norte .
:es # Edite el archivo alternativo.
^^ (Control de intercalación). sinónimo de :es # .
:en nombre Escribir en archivo nombre (guardar como...).
:¡en! nombre Archivo de sobrescritura nombre .
: sh Suelta al shell de línea de comandos; ^ D regresar.
:! cmd Ejecutar comando de shell cmd , luego regresa a nosotros .
:norte Edite el siguiente archivo que se especificó como argumento para nosotros .
:norte argumentos Especifique una nueva lista de argumentos de archivos para nosotros Para editar.
:F Muestra el archivo actual que se está editando y el recuento de líneas actual.
^ G Sinónimo de :F .
: ta etiqueta Para etiquetar la entrada del archivo etiqueta .
^] Igual que : ta , y la siguiente palabra es la etiqueta .

Posicionamiento dentro del archivo

^ F Posición adelante una pantalla completa.
^B Coloque una pantalla hacia atrás.
^ D Desplácese hacia abajo una media pantalla.
^ U Desplácese hacia arriba la mitad de la pantalla.
en uno GRAMO Ir a la línea en uno (la última línea si en uno No especificado).
/ palmadita Buscar la siguiente aparición de patrón palmadita .
? palmadita Buscar ocurrencia anterior de patrón palmadita .
norte Repita la última búsqueda, en la última dirección de búsqueda.
norte Repita la última búsqueda, en la dirección opuesta a la de la última búsqueda.
/ palmadita /+ norte Buscar al norte la línea después de la siguiente aparición del patrón palmadita .
? palmadita ?- norte Buscar al norte th línea antes de la aparición anterior del patrón palmadita .
]] Pasar a la siguiente sección / función.
[[ Ir a la sección / función anterior.
% Encontrar coincidencia ( , ) , { , o } .

Insertar y reemplazar

La Esc sale de cada uno de los siguientes modos de entrada de texto, excepto para r , que solo se usa para ingresar un solo carácter.

I Modo de inserción: el texto se inserta antes del cursor.
a Modo anexar: el texto se agrega después del cursor.
A El texto se adjunta al final de la línea.
I El texto se inserta al principio de la línea.
o Abra una nueva línea, después de la línea actual, para ingresar texto.
O Abra una nueva línea, antes de la línea actual, para ingresar texto.
r x Reemplazar un carácter debajo del cursor con carácter x .
R Reemplazar varios caracteres.

Posicionamiento de línea

H Mueva el cursor a la primera línea ('inicio') de la ventana.
L Mueva el cursor a la última línea de la ventana.
METRO Mueva el cursor a la línea media de la ventana.
+ Mueva el cursor al primer carácter que no sea un espacio en blanco de la siguiente línea.
- Mueva el cursor al primer carácter que no sea un espacio en blanco de la línea anterior.
CR (Retorno de carro / la tecla Intro.) Igual que + .
abajo o j Siguiente línea, misma columna.
arriba o a Línea anterior, misma columna.

Posicionamiento de personajes

^ Mueva el cursor al primer carácter que no sea un espacio en blanco en la línea.
0 Mueva el cursor al principio de la línea.
$ Mueva el cursor al final de la línea.
derecho o l o ESPACIO Mueve el cursor un carácter hacia adelante.
izquierda o h o ^ H Mueve el cursor un carácter hacia atrás.
F x Encuentra la siguiente aparición de personaje x En la linea.
F x Encuentra la ocurrencia anterior del personaje x En la linea.
t x Subir a x hacia adelante.
T x Volver a x hacia atrás.
; Repita el último F , F , t , o T .
, Inversa de ; .
en uno | Mover a la columna en uno .

Operadores

(Cada uno de estos comandos se puede usar dos veces para afectar líneas completas):

D Borrar.
c Cambiar (como eliminar, pero lo coloca en el modo de inserción para ingresar el texto al que debería cambiar).
< Desplazar línea a la izquierda ancho de turno número de espacios.
> Desplazar línea a la derecha ancho de turno número de espacios.
! (comando de movimiento) comando de shell Filtrar texto a través de un comando de shell.
= Sangría para LISP.
y Insertar líneas en búfer.

Palabras, oraciones, párrafos

en Palabra adelante.
b Palabra al revés.
es Fin de palabra.
) Al siguiente salto de oración.
} Al siguiente salto de párrafo.
( A la ruptura de la oración anterior.
{ Al salto de párrafo anterior.
EN A la siguiente palabra delimitada por espacios en blanco.
B A la palabra anterior delimitada por espacios en blanco.
ES Al final de la palabra delimitada por espacios en blanco.

Tirar para almacenar en búfer y pegar desde el búfer

pag Pegar después del cursor.
PAG Pegar antes del cursor.
' x pag Pegar del búfer x .
' x y Yank en búfer x .
' x D Eliminar en búfer x .

Deshacer, rehacer, recuperar

tu Deshacer el último cambio.
U Restaurar la línea actual.
. Repita el último cambio.
' D pag Recuperar D la última eliminación.

Marcando y devolviendo

'' Ir a la ubicación anterior.
'' Vaya a la ubicación anterior, en el primer espacio no en blanco en la línea.
metro x Marcar posición con letra x .
' x Mover a la posición marcada x .
' x Mover a la posición marcada x , en el primer carácter que no sea un espacio en blanco de la línea.

Operaciones misceláneas

C Cambiar el resto de la línea.
D Elimina el resto de la línea.
s Caracteres sustitutos.
S Sustituir líneas.
J Unir líneas.
x Elimina un solo carácter.
X Eliminar un solo carácter antes de el cursor.
Y Tira de una línea; igual que yy .

Ajustar la pantalla

^ L Limpiar y volver a dibujar.
con (Ingresar) Vuelva a dibujar la pantalla con la línea actual en la parte superior.
con- Vuelva a dibujar la pantalla con la línea actual en la parte inferior.
con. Vuelva a dibujar la pantalla con la línea actual en el centro.
zz Igual que con. .
^ E Desplace la ventana hacia abajo una línea (pero no mueva el cursor).
^Y Desplace la ventana hacia arriba una línea (pero no mueva el cursor).

Combinaciones de comandos útiles

dw Elimina una palabra.
de Elimina una palabra, dejando intactos los signos de puntuación.
dd Elimina una línea.
3dd Elimina 3 líneas (por ejemplo).
cw nuevo Cambiar palabra a nuevo .
eso Pluralice una palabra (coloque una s al final).
xp Transponer dos caracteres.

Ejemplos de

|_+_|

Edita el archivo myfile.txt .

ctags - Cree archivos de etiquetas para el código fuente.
ed - Un sencillo editor de texto.
editar - Un editor de texto.
ex - Modo editor de línea del nosotros editor de texto.
pico - Un sencillo editor de texto.
yo vine - Una versión avanzada de nosotros .
vipw - Edite de forma segura el archivo de contraseña.