Comando vim de Linux

comando vim

En Tipo Unix sistemas operativos, yo vine , Lo que significa ' Nosotros Mejorado ', es un texto editor . Se puede utilizar para editar cualquier tipo de texto y es especialmente adecuado para la edición de computadora. programas .

Descripción

yo vine es un editor de texto compatible con Nosotros . Hay muchas mejoras arriba Nosotros : multi nivel deshacer , múltiples ventanas y búferes, sintaxis destacando, línea de comando edición, Nombre del archivo finalización, un completo sistema de ayuda, selección visual y otros.

Comenzando vim

Más amenudo, yo vine se inicia para editar un solo archivo usando el siguiente comando.

|_+_|

De manera más general, la sintaxis para comenzar yo vine es como sigue:

|_+_|

Si el lista de archivos falta, el editor comenzará con un búfer vacío. De lo contrario, se puede utilizar una de las siguientes cuatro opciones para elegir uno o más archivos para editar.

Opciones principales

expediente ... Una lista de uno o más nombres de archivos. El primero será el archivo actual y se leerá en el búfer. El cursor se colocará en la primera línea del búfer. Puede acceder a los otros archivos con el ' :Siguiente 'comando. Para editar un archivo que comienza con un guión, preceda la lista de archivos con un guión doble (' -- ').
- Un solo guión especifica que el archivo a editar se debe leer desde entrada estándar .
-t { etiqueta } El archivo a editar y la posición inicial del cursor dependen de una 'etiqueta', una especie de ir etiqueta. La { etiqueta } se busca en el archivo de etiquetas, el archivo asociado se convierte en el archivo actual y se ejecuta el comando asociado. Principalmente esto se usa para C programas, en cuyo caso { etiqueta } podría ser un función nombre. El efecto es que el archivo que contiene esa función se convierte en el archivo actual y el cursor se coloca al inicio de la función. Para obtener más información dentro de yo vine , usa el comando ' : ayuda etiqueta-comandos '.
-q [ errorfile ] Inicie en modo QuickFix. El archivo errorfile se lee y se muestra el primer error. Si errorfile se omite, el nombre del archivo se obtiene del ' errorfile 'opción (por defecto es' errors.err 'en la mayoría de los sistemas). Se puede saltar a más errores con el ' :cn 'comando. Para obtener más información dentro de yo vine , usa el comando ' : ayuda corrección rápida '.

Invocando vim

yo vine se comporta de manera diferente según el nombre del comando utilizado para invocarlo. Por ejemplo, si crea un enlace simbólico hacia yo vine ejecutable con uno de los siguientes nombres, se comportará de la siguiente manera:

nombre del comando comportamiento
yo vine Ejecución 'normal'. Todo es predeterminado.
ex Inicie en modo Ex. Vaya al modo Normal con el ' :nosotros 'comando. También se puede hacer con el ' -es ' argumento .
vista Comience en modo de solo lectura. Estará protegido contra la escritura de archivos. También se puede hacer con el ' -R ' argumento.
gvim , gview La GUI versión (si está instalada). Inicia una nueva ventana. También se puede hacer con el ' -gramo ' argumento.
mi hogar , eview Ejecuta GUI vim en 'modo fácil'. Este comando es un modo simplificado de yo vine operación, que se parece mucho a un editor de texto normal. Esto es lo mismo que correr yo vine con el ' -y ' argumento.
rvim , rview , rgvim , rgview Como el anterior, pero ejecutándose en modo 'restringido'. No será posible iniciar comandos de shell desde dentro yo vine , o suspender yo vine . Esto es lo mismo que especificar el ' -CON ' argumento.

Sintaxis

|_+_| |_+_| |_+_| |_+_|

Opciones adicionales

Las opciones se pueden dar en cualquier orden, antes o después de los nombres de archivo. Las opciones sin un argumento se pueden combinar después de un solo guión.

+ [ en uno ] Para el primer archivo, el cursor se colocará en línea. en uno . Si en uno falta, el cursor se colocará en la última línea.
+ /{ palmadita } Para el primer archivo, el cursor se colocará en la primera aparición de { palmadita }. Desde dentro de vim, use el ' : ayuda patrón de búsqueda 'comando para los patrones de búsqueda disponibles.
+ { mando }, -c { mando } { mando } se ejecutará después de que se haya leído el primer archivo. { mando } se interpreta como un comando ex. Si el { mando } contiene espacios, debe estar entre comillas dobles (esto depende del shell que se utilice). Por ejemplo:

vim  file  
Puedes usar hasta 10 ' + ' o ' -c 'comandos.
-S { expediente } { expediente } se obtendrá después de que se haya leído el primer archivo. Esto es equivalente a -c 'fuente {archivo}' . { expediente } no puede empezar con ' - '. Si { expediente } se omite, 'Session.vim' se utiliza (solo funciona cuando -S es el último argumento).
--cmd { mando } Como usar ' -c ', pero el comando se ejecuta justo antes de procesar cualquier vimrc expediente. Puede utilizar hasta 10 de estos comandos, independientemente de ' -c 'comandos.
-A Si yo vine ha sido compilado con soporte árabe para editar archivos orientados de derecha a izquierda y mapeo de teclado árabe, esta opción comienza yo vine en modo árabe, es decir, ' Arábica ' Está establecido. De lo contrario, se muestra un mensaje de error y yo vine aborta.
-b Binario modo. Se establecerán algunas opciones que permitirán editar un archivo binario o ejecutable.
-C Modo compatible. Establece el ' compatible ' opción. Esto hará yo vine comportarse mayormente como Nosotros , a pesar de que un .vimrc El archivo existe.
-D Comience en modo diferencial. Debe haber dos, tres o cuatro argumentos de nombre de archivo. yo vine abrirá todos los archivos y mostrará las diferencias entre ellos. Funciona como vimdiff .
-D { dispositivo } Abierto { dispositivo } para usar como terminal (solo en el Amiga).
-D Modo de depuración. Vaya al modo de depuración al ejecutar el primer comando desde un texto .
-es Comienzo yo vine en ex modo, como si el ejecutable se llamara ' ex '.
-ES Comienzo yo vine en mejorado ex modo, como si el ejecutable se llamara ' exim '.
-F Modo de primer plano. Para la versión GUI, yo vine no se bifurca ni se desprende del caparazón en el que se inició. En el Amiga, yo vine no se reinicia para abrir una nueva ventana. Esta opción debe usarse cuando yo vine es ejecutado por un programa que esperará a que finalice la sesión de edición (por ejemplo, correo). En el Amiga el ' : sh ' y ' :! 'Los comandos no funcionarán.
--nofork Modo de primer plano. Para la versión GUI, yo vine no se bifurca ni se desprende del caparazón en el que se inició.
-F Si yo vine ha sido compilado con soporte FKMAP para editar archivos orientados de derecha a izquierda y mapeo de teclado farsi, esta opción comienza yo vine en modo farsi, es decir, ' fkmap ' y ' derecha izquierda ' se establecen. De lo contrario, se muestra un mensaje de error y yo vine aborta.
-gramo Si yo vine ha sido compilado con soporte de GUI, esta opción habilita la GUI. Si no se compiló el soporte de GUI, se muestra un mensaje de error y vim aborta.
-h Brinde un poco de ayuda sobre los argumentos y las opciones de la línea de comandos. Después de este yo vine salidas.
-H Si yo vine ha sido compilado con DERECHA IZQUIERDA soporte para editar archivos orientados de derecha a izquierda y mapeo de teclado hebreo, esta opción comienza yo vine en modo hebreo, es decir, ' hkmap ' y ' derecha izquierda ' se establecen. De lo contrario, se muestra un mensaje de error y yo vine aborta.
-I { viminfo } Al usar el viminfo archivo está habilitado, esta opción establece el nombre de archivo que se utilizará, en lugar del predeterminado ' ~ / .viminfo '. Esto también se puede utilizar para omitir el uso del .viminfo archivo, dando el nombre ' NINGUNO '.
-L Igual que -r .
-l Ceceo modo. Establece el ' ceceo ' y ' showmatch 'opciones en.
-metro La modificación de archivos está deshabilitada. Restablece el ' escribir ' opción. Aún puede modificar el búfer, pero no es posible escribir un archivo.
-METRO No se permiten modificaciones. La ' modificable ' y ' escribir 'se desarmarán las opciones, por lo que no se permiten cambios y no se pueden escribir archivos. Tenga en cuenta que estas opciones se pueden configurar para permitir la realización de modificaciones.
-NORTE Modo no compatible. Restablecer el ' compatible ' opción. Esto hará yo vine comportarse un poco mejor, pero menos Nosotros compatible, aunque un .vimrc el archivo no existe.
-norte No se utilizará ningún archivo de intercambio. La recuperación después de un accidente será imposible. Útil si desea editar un archivo en un medio muy lento (por ejemplo, disquete). También se puede hacer con ' : establecer uc = 0 '. Se puede deshacer con ' : establecer uc = 200 '.
-nótese bien Conviértase en un servidor editor de NetBeans.
-o [ norte ] Abierto norte ventanas apiladas. Cuándo norte se omite, abra una ventana para cada archivo.
-O [ norte ] Abierto norte Ventanas una al lado de la otra. Cuándo norte se omite, abra una ventana para cada archivo.
-pag [ norte ] Abierto norte páginas de pestañas. Cuándo norte se omite, abra una página de pestaña para cada archivo.
-R Modo de solo lectura. La ' solo lectura 'se establecerá la opción. Aún puede editar el búfer, pero no podrá sobrescribir accidentalmente un archivo. Si desea sobrescribir un archivo, agregue un signo de exclamación hacia Ex comando, como en ' :¡en! '. La -R La opción también implica la -norte opción (ver más abajo). La ' solo lectura 'opción se puede restablecer con' : establecer noro '. Ver ' : ayuda 'solo lectura' '.
-r Enumere los archivos de intercambio, con información sobre su uso para la recuperación.
-r { expediente } Modo de recuperación. El archivo de intercambio se utiliza para recuperar una sesión de edición bloqueada. El archivo de intercambio es un archivo con el mismo nombre de archivo que el archivo de texto con ' .swp 'adjunto. Ver ' : ayuda a la recuperación '.
-s Modo silencioso. Solo cuando comenzó como ' Ex 'o cuando el' -es 'se dio la opción antes de la' -s ' opción.
-s { Scriptina } El archivo de secuencia de comandos { Scriptina } es leído. Los caracteres del archivo se interpretan como si los hubiera escrito. Lo mismo se puede hacer con el comando ' :¡fuente! {scriptin} '. Si se llega al final del archivo antes de que salga el editor, se leen más caracteres desde el teclado.
-T { terminal } Dice yo vine el nombre de la terminal que está utilizando. Solo es necesario cuando la forma automática no funciona. Debería ser una terminal conocida por yo vine (incorporado) o definido en el termcap o terminfo expediente.
-u { vimrc } Utilice los comandos del archivo { vimrc } para inicializaciones. Todas las demás inicializaciones se omiten. Use esto para editar un tipo especial de archivos. También se puede usar para omitir todas las inicializaciones dando el nombre ' NINGUNO '. Ver ' : ayuda a la inicialización 'dentro de vim para más detalles.
-U { gvimrc } Utilice los comandos del archivo { gvimrc } para inicializaciones de GUI. Se omiten todas las demás inicializaciones de la GUI. También se puede usar para omitir todas las inicializaciones de la GUI dando el nombre ' NINGUNO '. Ver ' : ayuda gui-init ' dentro yo vine para más detalles.
-V [ norte ] Verboso. Dar mensajes sobre qué archivos se obtienen y para leer y escribir un viminfo expediente. El número opcional norte es el valor de ' verboso '. El valor predeterminado es 10 .
-v Comienzo yo vine en Nosotros modo, al igual que el ejecutable se llamó ' nosotros '. Esto solo tiene efecto cuando el ejecutable se llama ' ex '.
-en { scriptout } Todos los caracteres que escribe se registran en el archivo { scriptout }, hasta que salga yo vine . Esto es útil si desea crear un archivo de secuencia de comandos para usar con ' yo vine ' o ' :¡fuente! '. Si el { scriptout } archivo existe, se añaden caracteres.
-EN { scriptout } Como -en , pero se sobrescribe un archivo existente.
-x Usar cifrado al escribir archivos. Solicitará una clave de cripta.
-X No se conecte al servidor X. Acorta el tiempo de inicio en una terminal, pero el título de la ventana y el portapapeles no se utilizarán.
-y Comienzo yo vine en modo fácil, al igual que el ejecutable se llamó ' mi hogar ' o ' eview '. Hace yo vine comportarse como un editor de clic y escribir.
-CON Modo restringido. Funciona como si el ejecutable comenzara con ' r '.
-- Denota el final de las opciones. Los argumentos posteriores a esto se manejarán como un nombre de archivo. Esto se puede usar para editar un nombre de archivo que comience con un ' - '.
--echo-wid Solo GTK GUI: haga eco de la ID de la ventana en la salida estándar.
--ayuda Envíe un mensaje de ayuda y salga, como ' -h '.
--literal Tome los argumentos del nombre de archivo literalmente, no los expanda comodines . Esto no tiene ningún efecto sobre Unix donde el shell expande los comodines.
--noplugin Omitir la carga de complementos. Implicado por -u NINGUNO .
--remoto Conéctese a un yo vine servidor y haga que edite los archivos dados en el resto de los argumentos. Si no se encuentra ningún servidor, se emite una advertencia y los archivos se editan en el yo vine .
--remote-expr { expr } Conéctese a un yo vine servidor, evaluar { expr } e imprima el resultado en stdout.
--envío remoto { llaves } Conéctese a un yo vine servidor y enviar { llaves } a ella.
- silencioso remoto Como --remoto , pero sin la advertencia cuando no se encuentra ningún servidor.
- espera-remota Como --remoto , pero yo vine no sale hasta que se hayan editado los archivos.
- remoto-espera-silencioso Como - espera-remota , pero sin la advertencia cuando no servidor es encontrado.
--lista de servidores Lista los nombres de todos yo vine servidores que se pueden encontrar.
--nombre del servidor { nombre } Usar { nombre } como el nombre del servidor. Usado para la corriente yo vine , a menos que se use con un --remoto argumento, entonces es el nombre del servidor al que conectarse.
--socketid { identificación } GUI GTK solamente: utilice el GtkPlug mecanismo para ejecutar gvim en otra ventana.
--versión Imprima la información de la versión y salga.

Accediendo a la ayuda desde dentro de vim

Tipo ' :ayuda ' en yo vine Para empezar. Tipo ' : ayuda al sujeto 'para obtener ayuda sobre un tema específico. Por ejemplo: ' : ayuda ZZ 'para obtener ayuda para el' ZZ 'comando. Usar y Ctrl-D para completar asignaturas (' : ayuda cmdline-completamiento '). Las etiquetas están presentes para saltar de un lugar a otro (una especie de enlaces de hipertexto, consulte ' :ayuda '). Todos los archivos de documentación se pueden ver de esta manera, por ejemplo ' : ayuda syntax.txt '.

Aprendiendo vim con el tutor de vim

yo vine se instala con un sistema tutorial incorporado llamado vimtutor para ayudarte a aprender los comandos de vim. Es un tutorial de 30 minutos que enseña lo más básico yo vine funcionalidad práctica. En Unix y Linux , Si yo vine se ha instalado correctamente, puede iniciarlo desde la línea de comando ejecutando el comando:

|_+_|

En Microsoft Ventanas lo puedes encontrar en el Programas / vim menú, o puede ejecutar vimtutor.bat en el directorio donde yo vine fue instalado.

Editando en vim: insertando texto

La yo vine editor es un editor 'modal'. Eso significa que el editor se comporta de manera diferente según el modo en el que se encuentre. Los dos modos básicos se denominan Modo normal y Modo de inserción . En el modo Normal, los caracteres que escribe son comandos. En el modo Insertar, los caracteres se insertan como texto.

Desde que acabas de empezar yo vine estará en modo Normal. Para iniciar el modo Insertar, escriba el ' I 'comando ( I para Insertar). Luego puede ingresar el texto. Se insertará en el archivo. Por ejemplo, puede iniciar una nueva yo vine sesión ejecutando el siguiente comando desde la línea de comandos:

|_+_|

Esto te colocará en una nueva yo vine ventana de edición, que mostrará una tilde (' ~ ') en cualquier línea que esté vacía de texto. La ventana se parecerá a la siguiente:

|_+_|

Comenzarás en modo normal , por lo que para insertar texto deberá ingresar modo de inserción . Tu escribirás I y luego el texto que desea insertar en el documento. Entonces, puede escribir lo siguiente:

|_+_|

(Prensa después de la palabra texto para iniciar la nueva línea). Finalmente presionas el para detener el modo Insertar y volver al modo Normal. Ahora tiene dos líneas de texto en su yo vine ventana:

|_+_|

Salir de problemas

Al aprender por primera vez yo vine , es común confundirse al escribir el comando incorrecto o al escribirlo en el modo incorrecto. En todo momento, para volver al modo Normal (sin importar en qué modo se encuentre), presione el Esc clave. A veces tienes que presionarlo dos veces. Si yo vine le emite un pitido, ya se encuentra en el modo Normal.

Moviéndose

Después de regresar al modo Normal, puede moverse usando estas teclas:

h izquierda
j abajo
a arriba
l derecho

Estas teclas pueden parecer opciones extrañas para mover el cursor, pero hay una muy buena razón para esto: mover el cursor es lo más común que hace en un editor, y estas teclas están en la fila de inicio de su mano derecha. En otras palabras, estos comandos se colocan donde puede escribirlos más rápido (especialmente cuando escribe con diez dedos).

También puede mover el cursor con las teclas de flecha. Sin embargo, si lo hace, la edición se ralentiza mucho porque para presionar las teclas de flecha, debe mover la mano de las teclas de texto a las teclas de flecha. Teniendo en cuenta que puede hacerlo cientos de veces por hora, esto puede llevar una cantidad significativa de tiempo. Además, hay teclados que no tienen teclas de flecha o los ubican en lugares inusuales; por lo tanto, conociendo el uso de la hjkl keys ayuda en esas situaciones.

La mejor forma de aprender estos comandos es usarlos. Utilizar el ' I 'comando para insertar más líneas de texto. Entonces usa el hjkl teclas para moverse e insertar una palabra. No olvide presionar Esc para volver al modo Normal. La vimtutor también es una forma fácil de aprender con la práctica.

Eliminando personajes

Para eliminar un carácter, mueva el cursor sobre él y escriba ' x '. Mueva el cursor al principio de la primera línea, por ejemplo, y escriba xxxxxxx (siete x 's) para eliminar' Esto es '. El resultado debería verse así:

|_+_|

Ahora puede insertar texto nuevo, por ejemplo, escribiendo:

|_+_|

Esto comienza un inserto (el I ), inserta las palabras ' Aquí está ', y luego sale del modo de inserción ( ). El resultado:

|_+_|

Eliminar una línea

Para eliminar una línea completa, mueva el cursor a esa línea y escriba ' dd '. La siguiente línea se moverá hacia arriba para llenar el espacio. Por ejemplo, si mueve el cursor a la primera línea y escribe ' dd ', nuestro ejemplo se verá así:

|_+_|

Eliminar un salto de línea

En yo vine puede unir dos líneas, lo que significa que se elimina el salto de línea entre ellas. La ' J 'comando hace esto. Toma estas dos líneas:

|_+_|

Mueva el cursor a la primera línea y presione ' J ':

|_+_|

Deshacer

La ' tu 'comando deshace la última edición. En yo vine , presionando tu varias veces continúa deshaciendo las ediciones anteriores. Esta es una de las formas yo vine es diferente a nosotros ; en nosotros , presionando tu dos veces deshace el deshacer.

Listo

Prensado Ctrl-R (rehacer) invierte el comando anterior. Entonces, después de realizar un deshacer con ' tu ', presionando Ctrl-R deshará el deshacer.

Anexando

La ' I El comando 'inserta un carácter antes del carácter debajo del cursor. Eso funciona bien; pero ¿qué pasa si quieres agregar cosas al final de la línea? Para eso necesitas insertar texto después del cursor. Esto se hace con el ' a '(añadir) comando. Por ejemplo, para cambiar la línea

|_+_|

a

|_+_|

mueva el cursor hasta el punto (punto) al final de la línea. Luego escribe ' x 'para borrar el período. El cursor ahora está posicionado al final de la línea. Ahora escribe

|_+_|

Y luego presione para volver al modo normal.

Por lo tanto, cada vez que desee insertar texto justo donde está el cursor, presione ' I '. Pero si desea comenzar a agregar texto después de la posición del cursor, presione ' a '.

Abriendo una nueva línea

La ' o 'crea una nueva línea vacía debajo del cursor y coloca yo vine en modo Insertar. Luego, puede escribir el texto de la nueva línea. Supongamos que el cursor está en algún lugar de la primera de estas dos líneas:

|_+_|

Si ahora usa el ' o 'comando y escriba nuevo texto:

|_+_|

Luego escribe para volver al modo normal. El resultado es:

|_+_|

La ' O El comando '(en mayúsculas) es similar, pero abre una línea sobre el cursor en lugar de debajo de él.

Repetir un comando usando un conteo

Suponga que quiere subir nueve líneas. Puedes escribir ' jajajajaja 'o puede ingresar el comando' 9k '. De hecho, puede preceder muchos comandos con un número. Por ejemplo, anteriormente agregamos tres signos de exclamación al final de una línea escribiendo ' a!!! '. Otra forma de hacer esto es usar el comando ' 3a! '. El recuento de 3 dice el comando que sigue para triplicar su efecto. Del mismo modo, para eliminar tres caracteres, use el comando ' 3 veces '. El recuento siempre viene antes del comando al que se aplica.

Saliendo de vim

Para salir, use el ' ZZ 'comando. Este comando escribe el archivo y sale.

A diferencia de otros editores, yo vine no crea automáticamente un archivo de respaldo. Si escribe ' ZZ ', sus cambios están comprometidos y no hay vuelta atrás. Puedes configurar yo vine para producir archivos de respaldo (ver ' Archivos de respaldo ', a continuación), pero no lo hará de forma predeterminada.

Descartando cambios

Para salir sin guardar sus cambios, use el comando

|_+_|

Para aquellos de ustedes interesados ​​en los detalles, las tres partes de este comando son los dos puntos ( : ), que ingresa al modo de línea de comandos; la q comando, que le dice al editor que salga; y el modificador de comando de anulación ( ! ). El modificador de comando override es necesario porque yo vine es reacio a desechar los cambios. Si tuvieras que escribir ' :q ', yo vine mostraría un mensaje de error y se negaría a salir:

|_+_|

Si simplemente desea volver a la versión guardada del archivo, el ' :¡es! 'comando recarga la versión original del archivo.

Pasando de una palabra a otra

Para mover el cursor una palabra hacia adelante, use la tecla ' en 'comando. Me gusta más yo vine comandos, puede utilizar un prefijo numérico para pasar de varias palabras. Por ejemplo, ' 3 semanas 'mueve tres palabras. Este ejemplo muestra cómo funciona: Para la siguiente línea de texto, si presiona ' en 'donde se indica, el cursor se mueve al lugar indicado por la flecha.

|_+_|

O, usando el prefijo numérico:

|_+_|

La ' b El comando 'retrocede al inicio de la palabra anterior:

|_+_|

También está el ' es 'comando que se mueve al siguiente final de una palabra y' dar ', que se mueve al final anterior de una palabra:

|_+_|

Si está en la última palabra de una línea, el ' en 'comando lo llevará a la primera palabra en la siguiente línea. Por lo tanto, puede usar esto para moverse por un párrafo, mucho más rápido que usar ' l '. ' b 'hace lo mismo en la otra dirección.

Una palabra termina en un carácter que no es una palabra, como un ' . ', ' - ' o ' ) '. Para cambiar lo que yo vine considera que es una palabra, use el ' : ayuda es palabra clave 'comando. También es posible moverse por espacio en blanco -palabras separadas. Esta no es una 'palabra' en el sentido normal, por eso se usa mayúscula. Los comandos para moverse de esta manera están en mayúsculas, como se muestra aquí:

|_+_|

Con esta combinación de comandos en minúsculas y mayúsculas, puede avanzar y retroceder rápidamente en un párrafo.

Moverse al principio o al final de una línea

La ' $ El comando 'mueve el cursor al final de una línea. Si su teclado tiene un clave hará lo mismo.

La ' ^ El comando 'se mueve al primer carácter que no está en blanco de la línea. La ' 0 'comando (cero) se mueve al primer carácter de la línea (el clave hace lo mismo):

|_+_|

La ' $ 'comando cuenta, como la mayoría de los comandos de movimiento. Pero moverse hasta el final de la línea varias veces no tiene sentido. Por lo tanto, hace que el editor se mueva al final de otra línea. Por ejemplo, ' 1$ 'te lleva al final de la primera línea (en la que estás)', 2$ 'hasta el final de la siguiente línea, y así sucesivamente.

La ' 0 'comando no acepta un argumento de recuento, porque el' 0 'sería parte del recuento.

Usando un recuento con ' ^ 'no tiene ningún efecto.

Pasando a un personaje

Uno de los comandos de movimiento más útiles es el comando de búsqueda de un solo carácter. El comando ' p.ej. 'busca hacia adelante en la línea el carácter' x '. La 'f' significa 'Buscar'.

Por ejemplo, se encuentra al principio de la siguiente línea. Suponga que quiere ir a la 'h' en 'humano'. Simplemente ejecute el comando ' fh 'y el cursor se colocará sobre el h :

|_+_|

Puede especificar un recuento; entonces, desde el principio de la línea, puedes ir a la 'o' de 'perdonar' con ' 3fo ':

|_+_|

La ' F El comando '(F mayúscula) busca a la izquierda:

|_+_|

La ' tx 'comando funciona como el' p.ej. ', excepto que detiene un carácter antes del carácter buscado. La 't' significa 'To'. La versión hacia atrás de este comando es ' Tx '.

|_+_|

Estos cuatro comandos se pueden repetir con ' ; '.

' , 'repite en la otra dirección.

El cursor nunca se mueve a otra línea. Ni siquiera cuando la sentencia continúa.

A veces, iniciará una búsqueda, solo para darse cuenta de que ha escrito el comando incorrecto. Usted escribe ' F 'buscar hacia atrás, por ejemplo, solo para darse cuenta de que realmente quiso decir' F '. Para cancelar una búsqueda, presione . Entonces ' F 'es una búsqueda hacia adelante abortada y no hace nada. cancela la mayoría de las operaciones, no solo las búsquedas.

Emparejar un paréntesis

Al escribir un programa, a menudo terminas con construcciones anidadas (). Entonces el ' % El comando 'es muy útil: se mueve al paréntesis correspondiente. Si el cursor está en un ' ( 'se mueve al emparejamiento' ) '. Si está en un ' ) 'se mueve al emparejamiento' ( '.

|_+_|

Esto también funciona para [] y {} pares. Esto se puede definir con el ' parejas ' opción. Utilizar el ' : ayuda a emparejar pares 'comando dentro yo vine para más información.

Cuando el cursor no está en un carácter útil, ' % 'buscará hacia adelante para encontrar uno. Por tanto, si el cursor está al principio de la línea del ejemplo anterior, ' % 'buscará hacia adelante y encontrará el primero' ( '. Luego pasa a su partido:

|_+_|

Moverse a una línea específica

Para moverse a una línea específica, use el ' GRAMO 'comando.

Sin argumento ' GRAMO 'lo coloca al final del archivo. Una forma rápida de ir al inicio del uso de un archivo ' dias '. ' 1G 'hará lo mismo.

|_+_|

Otra forma de moverse a una línea es usando el ' % 'con un recuento, que lo mueve ese porcentaje a través del archivo. Por ejemplo ' 50% 'lo lleva a la mitad del archivo. ' 90% 'llega casi al final.

Lo anterior asume que desea moverse a una línea en el archivo, sin importar si está visible actualmente o no. ¿Qué pasa si desea pasar a una de las líneas que puede ver? Esta figura muestra los tres comandos que puede usar, H , METRO , y L .

H te lleva a la parte superior de la pantalla visible, METRO al medio, y L hasta el final. Por ejemplo:

|_+_|

'H' significa Inicio, 'M' significa Medio y 'L' significa Último.

Determinar dónde estás

Para ver dónde se encuentra en un archivo, hay tres formas:

Utilizar el Ctrl-G mando. Recibes un mensaje como este:

|_+_|

Esto muestra el nombre del archivo que está editando, el número de línea donde está el cursor, el número total de líneas, el porcentaje del recorrido del archivo y la columna del cursor.

A veces verá un número de columna dividido. Por ejemplo, ' con 2-9 '. Esto indica que el cursor está posicionado en el segundo carácter, pero debido a que el carácter uno es una pestaña, ocupando ocho espacios de columnas, la columna de la pantalla es 9 .

Selecciona el ' número ' opción. Esto muestra un número de línea delante de cada línea:

|_+_|

Para apagar esto de nuevo:

|_+_|

Dado que 'número' es un booleano opción, anteponiendo ' no 'a su nombre tiene el efecto de apagarlo. Una opción booleana tiene solo estos dos valores, está activada o desactivada.

yo vine tiene muchas opciones. Además de los booleanos, hay opciones con un valor numérico y opciones de cadena. Verá ejemplos de esto donde se utilizan.

Selecciona el ' regla ' opción. Esto muestra la posición del cursor en la esquina inferior derecha de la yo vine ventana:

|_+_|

Desplazamiento

La Ctrl-U El comando se desplaza hacia abajo en la mitad de una pantalla de texto. Piense en mirar el texto a través de una ventana de visualización y subir esta ventana a la mitad de la altura de la ventana. Por lo tanto, la ventana se mueve hacia arriba sobre el texto, que está hacia atrás en el archivo. No se preocupe si tiene problemas para recordar cuál es el final. La mayoría de los usuarios tienen el mismo problema.

La Ctrl-D El comando mueve la ventana de visualización hacia abajo la mitad de una pantalla en el archivo, por lo que desplaza el texto hacia arriba la mitad de la pantalla.

|_+_|

Para desplazarse una línea a la vez, utilice Ctrl-E (desplazarse hacia arriba) y Ctrl-Y (desplácese hacia abajo). Pensar en Ctrl-E para darle una línea extra. Si usa asignaciones de teclas compatibles con MSWindows Ctrl-Y rehacerá un cambio en lugar de desplazarse.

Para desplazarse hacia adelante en toda la pantalla (excepto por dos líneas) use Ctrl-F . La otra forma es al revés Ctrl-B es el comando a utilizar. por suerte Ctrl-F es Adelante y Ctrl-B está al revés, eso es fácil de recordar.

Un problema común es que después de bajar muchas líneas con ' j 'su cursor está en la parte inferior de la pantalla. Le gustaría ver el contexto de la línea con el cursor. Eso está hecho con el ' zz 'comando.

|_+_|

La ' Nuevo Testamento 'comando coloca la línea del cursor en la parte superior,' p.ej. ' en el fondo. Para mantener siempre algunas líneas de contexto alrededor del cursor, use el ' desplazamiento ' opción (' : establecer desplazamiento ').

Búsquedas sencillas

Para buscar un cuerda , utilizar el ' / cuerda 'comando. Para encontrar la palabra 'incluir', por ejemplo, use el comando:

|_+_|

Notará que cuando escribe el ' / 'el cursor salta a la última línea del yo vine ventana, como con los comandos de dos puntos. Ahí es donde escribe la palabra. Puede presionar la tecla de retroceso (flecha hacia atrás o ) para hacer correcciones. Utilizar el y teclas de cursor cuando sea necesario. Prensado ejecuta el comando.

Nota: los personajes .*[]^%/?~$ tienen significados especiales. Si desea utilizarlos en una búsqueda debe poner un en frente de ellos; vea abajo.

Para encontrar la siguiente ocurrencia de la misma cadena use el ' norte 'comando. Use esto para encontrar el primer '#include' después del cursor:

|_+_|

Y luego escribe ' norte ' varias veces. Te mueves a cada '#include' en el texto. También puede utilizar un recuento si sabe qué coincidencia desea. Por lo tanto ' 3n 'encuentra la tercera coincidencia. Usando un recuento con ' / 'no funciona.

La ' ? 'comando funciona como' / 'pero busca al revés:

|_+_|

La ' norte El comando 'repite la última búsqueda en la dirección opuesta. Por lo tanto, usando ' norte ' después de ' / 'comando buscar hacia atrás, usando' norte ' después ' ? 'busca hacia adelante.

Ignorando el caso

Normalmente tienes que escribir exactamente lo que quieres encontrar. Si no le importan las mayúsculas o las minúsculas en una palabra, establezca el ' ignorar caso ' opción:

|_+_|

Si ahora busca 'palabra', también coincidirá con 'Palabra' y 'PALABRA'. Para hacer coincidir el caso de nuevo:

|_+_|

Historia

Suponga que realiza tres búsquedas:

|_+_| |_+_| |_+_|

Ahora comencemos a buscar escribiendo un simple ' / 'sin presionar . Si presiona (la tecla del cursor), yo vine pone ' /Tres 'en la línea de comando. Prensado en este punto busca tres. Si no presiona , pero presione en lugar de, yo vine cambia el mensaje a ' /dos '. Otra prensa de te mueve a ' /uno '.

También puede utilizar el tecla de cursor para moverse por el historial de comandos de búsqueda en la otra dirección.

Si sabe con qué comienza un patrón usado anteriormente y desea volver a usarlo, escriba ese carácter antes de presionar . Con el ejemplo anterior, puede escribir ' /o ' y yo vine pondrá ' /uno 'en la línea de comando.

Los comandos que comienzan con ' : 'también tiene una historia. Eso le permite recuperar un comando anterior y ejecutarlo nuevamente. Estas dos historias están separadas.

Buscando una palabra en el texto

Suponga que ve la palabra 'TheLongFunctionName' en el texto y desea encontrar la siguiente aparición. Podrías escribir ' / TheLongFunctionName ', pero eso es mucho tipeo.

Hay una forma más sencilla: coloque el cursor sobre la palabra y utilice el ' * 'comando. yo vine tomará la palabra debajo del cursor y la usará como cadena de búsqueda.

La ' # El comando 'hace lo mismo en la otra dirección. Puede anteponer un recuento: ' 3* 'busca la tercera aparición de la palabra debajo del cursor.

Buscando palabras completas

Si escribe ' /la 'también coincidirá con' allí '. Para encontrar solo palabras que terminen en 'the' use:

|_+_|

La ' > La notación 'es un marcador especial que solo coincide al final de una palabra. Similar ' < 'solo coincide con el comienzo de una palabra. Por lo tanto, para buscar la palabra 'el' solo:

|_+_|

Esto no coincide con 'allí' o 'calmar'. Tenga en cuenta que el ' * ' y ' # 'los comandos usan estos marcadores de inicio de palabra y final de palabra para encontrar solo palabras completas (puede usar' gramo* ' y ' gramo# 'para hacer coincidir palabras parciales).

Destacando partidos

Mientras edita un programa, verá una variable llamada 'nr'. Quieres comprobar dónde se usa. Puede mover el cursor a 'nr' y usar el ' * 'comando y presione' norte 'para acompañar todos los partidos.

Hay otra forma. Escriba este comando:

|_+_|

Si ahora busca ' No ', yo vine resaltará todos los partidos. Esa es una muy buena manera de ver dónde se usa la variable, sin la necesidad de escribir comandos.

Para apagar esto:

|_+_|

Luego, debe volver a encenderlo si desea usarlo para el próximo comando de búsqueda. Si solo desea eliminar el resaltado, use este comando:

|_+_|

Esto no restablece la opción. En cambio, deshabilita el resaltado. Tan pronto como ejecute un comando de búsqueda, se volverá a utilizar el resaltado. Además, para el ' norte ' y ' norte 'comandos.

Búsquedas de tuning

Hay algunas opciones que cambian el funcionamiento de la búsqueda. Estos son los imprescindibles:

|_+_|

Esto hace yo vine muestra la coincidencia de la cadena mientras aún la estás escribiendo. Use esto para verificar si se encuentra la coincidencia correcta. Entonces presione para saltar realmente a esa ubicación. O escriba más para cambiar la cadena de búsqueda.

|_+_|

Esto detiene la búsqueda al final del archivo. O, cuando busca hacia atrás, al principio del archivo. La ' Wrapscan 'está activada de forma predeterminada, por lo que la búsqueda se ajusta al final del archivo.

Intermezzo

Si le gusta una de las opciones mencionadas anteriormente, configúrela cada vez que use yo vine , puedes poner el comando en tu yo vine archivo de inicio.

Si necesita saber dónde está el archivo de inicio, use este comando:

|_+_|

Edite el archivo, por ejemplo con:

|_+_|

Luego agregue una línea con el comando para configurar la opción, tal como la escribió yo vine . Ejemplo:

|_+_|

' GRAMO 'se mueve al final del archivo. ' o 'comienza una nueva línea, donde escribe el' :colocar 'comando. Finaliza el modo de inserción con . Luego escribe el archivo:

|_+_|

Si ahora empiezas yo vine de nuevo, el ' hlsearch 'ya estará configurada.

Patrones de búsqueda simples

La yo vine usos del editor expresiones regulares ('Regex') para especificar qué buscar. Las expresiones regulares son una forma extremadamente poderosa y compacta de especificar un patrón de búsqueda.

Regex: comienzo y final de una línea

La ^ ( No ) coincide con el comienzo de una línea. El patrón 'incluir' coincide con la palabra incluir en cualquier parte de la línea. Pero el patrón ' ^ incluir 'coincide con la palabra incluir solo si está al principio de una línea.

La $ carácter coincide con el final de una línea. Por lo tanto, ' era $ 'coincide con la palabra' was 'solo si está al final de una línea.

Puedes intentar buscar con ' / ^ el $ ', solo coincidirá con una única línea que consta únicamente de la palabra' the '. El espacio en blanco importa; por lo tanto, si una línea contiene un espacio después de la palabra, como 'the', el patrón no coincidirá.

Regex: coincidir con cualquier carácter individual

La . El carácter (punto o punto) coincide con cualquier carácter existente. Por ejemplo, el patrón ' cm 'coincide con una cadena cuyo primer carácter es una' c ', cuyo segundo carácter es cualquier cosa y cuyo tercer carácter es' m '.

Regex: coincidencia de caracteres especiales

Si realmente desea hacer coincidir un punto, debe evitar su significado especial colocando una barra invertida antes, como esta: ' . '. Lo mismo ocurre con cualquier carácter especial ( .*[]^%/?~$ ).

Usando marcas

Cuando das un salto a una posición con el ' GRAMO 'comando, yo vine recuerda la posición de antes de este salto. Esta posición se llama marca. Para volver de donde vino, use este comando:

|_+_|

Esto ' es un carácter de comillas simples o comillas simples abiertas.

Si usa el mismo comando por segunda vez, volverá a saltar. Eso es porque el ' El comando es un salto en sí mismo, y se recuerda la posición anterior a este salto.

Generalmente, cada vez que ejecuta un comando que puede mover el cursor más lejos que dentro de la misma línea, esto se llama salto. Esto incluye los comandos de búsqueda ' / ' y ' norte '(no importa lo lejos que esté el partido). Pero no el personaje busca con ' p.ej. ' y ' tx 'o la palabra movimientos' en ' y ' es '.

También, ' j ' y ' a 'no se consideran un salto. Incluso cuando usa un recuento para hacer que muevan el cursor bastante lejos.

La '' comando salta de un lado a otro, entre dos puntos. La Ctrl-O comando salta a posiciones más antiguas ('O' significa 'más antiguo'). Ctrl-I luego regresa a posiciones más nuevas. Considere esta secuencia de comandos:

|_+_| |_+_| |_+_|

Primero salte a la línea 33, luego busque una línea que comience con 'The'. Entonces con Ctrl-O vuelve a la línea 33. Otro Ctrl-O te lleva de vuelta a donde empezaste. Si ahora usa Ctrl-I vuelve a saltar a la línea 33. Y al partido de 'The' con otro Ctrl-I .

Nota: Ctrl-I es lo mismo que .

La ' : saltos El comando 'proporciona una lista de posiciones a las que saltó. La entrada que utilizó por última vez está marcada con un ' > '.

Marcas nombradas

yo vine le permite colocar marcas en el texto. El comando ' mamá 'marca el lugar debajo del cursor como marca' a '. Puede colocar 26 marcas ( a mediante con ) en su texto. No puedes verlos, es solo una posición que Vim recuerda.

Para ir a una marca, use el comando ' { Marcos }, dónde { Marcos } es la letra de la marca. Por lo tanto, para pasar a la marca a:

|_+_|

El comando ' Marcos (comillas simples o apóstrofo) lo lleva al principio de la línea que contiene la marca. Esto difiere del ' Marcos comando, que lo mueve a la columna marcada.

Las marcas pueden resultar muy útiles cuando se trabaja en dos partes relacionadas en un archivo. Suponga que tiene algo de texto cerca del inicio del archivo que necesita mirar, mientras trabaja en algún texto cerca del final del archivo.

Vaya al texto al principio y coloque la marca 's' (inicio) allí:

|_+_|

Luego, vaya al texto en el que desea trabajar y coloque la marca 'e' (final) allí:

|_+_|

Ahora puede moverse, y cuando quiera mirar el inicio del archivo, use esto para saltar allí:

|_+_|

Entonces puedes usar '' para volver a donde estabas, o 'es para saltar al texto en el que estaba trabajando al final.

No hay nada especial en usar 's' para el inicio y 'e' para el final, simplemente son fáciles de recordar.

Puede usar este comando para obtener una lista de marcas:

|_+_|

Notarás algunas marcas especiales. Éstas incluyen:

'' La posición del cursor antes de hacer un salto.
' La posición del cursor cuando se editó por última vez el archivo.
[ Inicio del último cambio.
] Fin del último cambio.

Operadores y movimientos

La ' dw El comando 'borra una palabra. Puede reconocer el ' en 'comando como el comando mover palabra. De hecho, el ' D El comando 'puede ir seguido de cualquier comando de movimiento, y se borra de la ubicación actual al lugar donde termina el cursor. La ' 4 semanas ', por ejemplo, mueve el cursor sobre cuatro palabras. La d4w comando borra cuatro palabras.

|_+_|

yo vine solo borra hasta la posición donde el movimiento toma el cursor. Eso es porque yo vine sabe que probablemente no desee eliminar el primer carácter de una palabra. Si usa el ' es 'comando para ir al final de una palabra, yo vine adivina que quieres incluir ese último carácter:

|_+_|

La inclusión del carácter debajo del cursor depende del comando que utilizó para moverse a ese carácter. Esto se llama 'exclusivo' cuando el personaje no está incluido e 'inclusivo' cuando lo está.

La ' $ El comando 'se mueve al final de una línea. La ' d $ El comando 'borra desde el cursor hasta el final de la línea, que es un movimiento inclusivo, por lo que el último carácter de la línea se incluye en la operación de borrado:

|_+_|

Aquí hay un patrón: operador-movimiento. Primero escribe un comando de operador. Por ejemplo, ' D 'es el operador de eliminación. Luego escribe un comando de movimiento como ' 4l ' o ' en '. De esta forma, puede operar sobre cualquier texto sobre el que pueda moverse.

Cambiar texto

Otro operador es ' c ', cambio. Actúa como el ' D ', excepto que lo deja en modo Insertar. Por ejemplo, ' cw 'cambia una palabra. O más específicamente, elimina una palabra y luego lo pone en modo Insertar.

|_+_|

Esto ' c2wbe 'contiene estos bits:

c El operador de cambio.
2 semanas Mueva dos palabras (se borran y se inicia el modo Insertar).
ser Inserta este texto.
Volver al modo normal.

El espacio antes de 'humano' no se elimina. La c El operador funciona igual que el D operador, con una excepción: ' cw '. De hecho, funciona como ' esto ', cambia al final de la palabra. Por lo tanto, el espacio después de la palabra no se incluye, lo cual es una excepción que se remonta a la antigua Nosotros . Dado que mucha gente está acostumbrada ahora, la inconsistencia se ha mantenido en yo vine .

Más cambios

Como ' dd 'borra una línea completa' cc 'cambia toda una línea. Sin embargo, mantiene la sangría existente (espacio en blanco inicial).

Al igual que ' d $ 'elimina hasta el final de la línea,' c$ 'cambia hasta el final de la línea. Es como hacer ' d $ 'para borrar el texto y luego' a 'para iniciar el modo Insertar y agregar texto nuevo.

Atajos

Algunos comandos de movimiento del operador se utilizan con tanta frecuencia que se les ha asignado un comando de una sola letra:

Mando: Representa: Descripción:
x D1 Eliminar carácter debajo del cursor.
X es decir Elimina el carácter a la izquierda del cursor.
D d $ Eliminar hasta el final de la línea.
C c$ Cambiar al final de la línea.
s c1 Cambia un personaje.
S cc Cambia una línea completa.

Donde poner la cuenta

Los comandos ' 3dw ' y ' d3w 'borre tres palabras. Si quieres ser muy quisquilloso con las cosas, el primer comando, ' 3dw ', elimina una palabra tres veces; El comando ' d3w 'elimina tres palabras una vez, lo cual es una diferencia sin distinción. Sin embargo, en realidad puedes contar dos. Por ejemplo, ' 3d2w 'elimina dos palabras, repetidas tres veces, para un total de seis palabras.

Reemplazo con un carácter

La ' r 'comando no es un operador. Espera a que escriba un carácter y reemplazará el carácter debajo del cursor con él. Podrías hacer lo mismo con ' cl 'o con el' s 'comando, pero con' r 'no tienes que presionar

|_+_|

Usando un recuento con ' r 'hace que muchos caracteres sean reemplazados por el mismo carácter. Ejemplo:

|_+_|

Para reemplazar un carácter con un salto de línea, use ' r '. Esto elimina un carácter e inserta un salto de línea. El uso de un recuento aquí solo se aplica a la cantidad de caracteres eliminados: ' 4r 'reemplaza cuatro caracteres con un salto de línea.

Repitiendo un cambio

La ' . 'comando es uno de los comandos más simples pero poderosos en yo vine . Repite el último cambio. Por ejemplo, suponga que está editando un HTML archivo y desea eliminar todos los etiquetas. Coloca el cursor en el primer < y borra el con el comando ' df> '. Luego vas a la < del siguiente y mátalo usando el ' . 'comando. La ' . 'comando ejecuta el último comando de cambio (en este caso,' df> '). Para eliminar otra etiqueta, coloque el cursor en el < y usa el ' . 'comando.

|_+_|

La ' . El comando 'funciona para todos los cambios que realice, excepto para el' tu ' (deshacer), Ctrl-R (rehacer) y comandos que comienzan con dos puntos ( : ).

Otro ejemplo: desea cambiar la palabra 'cuatro' por 'cinco'. Aparece varias veces en su texto. Puede hacer esto rápidamente con esta secuencia de comandos:

/ cuatro Encuentra la primera cadena 'cuatro'.
cwfive Cambie la palabra a 'cinco'.
norte Encuentra los siguientes 'cuatro'.
. Repita el cambio a 'cinco'.
norte Encuentra los siguientes 'cuatro'.
. Repite el cambio.

etc.

Modo visual

Para eliminar elementos simples, los cambios de movimiento del operador funcionan bastante bien. Pero a menudo no es tan fácil decidir qué comando se mueve sobre el texto que desea cambiar. Entonces puedes usar el modo Visual.

Inicie el modo Visual presionando ' v '. Mueve el cursor sobre el texto en el que desea trabajar. Mientras hace esto, el texto se resalta. Por último, escriba el comando del operador.

Por ejemplo, para eliminar de la mitad de una palabra a la mitad de otra palabra:

|_+_|

Al hacer esto, realmente no tiene que contar cuántas veces tiene que presionar ' l 'para terminar en la posición correcta. Puede ver inmediatamente qué texto se eliminará cuando presione ' D '.

Si en algún momento decide que no quiere hacer nada con el texto resaltado, simplemente presione y el modo Visual se detendrá sin hacer nada.

Seleccionar líneas

Si desea trabajar en líneas completas, use ' V 'para iniciar el modo Visual. Verá de inmediato que toda la línea está resaltada, sin moverse. Cuando te mueves hacia la izquierda o hacia la derecha, nada cambia. Cuando se mueve hacia arriba o hacia abajo, la selección se extiende líneas completas a la vez.

Por ejemplo, seleccione tres líneas con ' Vjj ':

|_+_|

Seleccionar bloques

Si desea trabajar en un bloque rectangular de caracteres, utilice Ctrl-V para iniciar el modo Visual. Esto es muy útil cuando se trabaja con tablas.

|_+_|

Para borrar el medio ' Q2 'columna, mueva el cursor a la' Q ' de ' Q2 '. prensa Ctrl-V para iniciar el modo Visual en bloque. Ahora mueva el cursor tres líneas hacia abajo con ' 3j 'y a la siguiente palabra con' en '. Puede ver que el primer carácter de la última columna está incluido. Para excluirlo, use ' h '. Ahora presiona ' D 'y la columna del medio se ha ido.

Yendo al otro lado

Si ha seleccionado algún texto en modo Visual y descubre que necesita cambiar el otro extremo de la selección, use el ' o 'comando. El cursor irá al otro extremo y puede mover el cursor para cambiar el lugar donde comienza la selección. Presionando ' o 'de nuevo te lleva al otro extremo. Cuando usa la selección por bloques, tiene cuatro esquinas. ' o 'solo te lleva a una de las otras esquinas, en diagonal. Usar ' O 'para pasar a la otra esquina en la misma línea. Tenga en cuenta que ' o ' y ' O 'en el modo Visual funcionan de manera muy diferente al modo Normal, donde abren una nueva línea debajo o encima del cursor.

Mover texto

Cuando borra algo con el ' D ', ' x ', u otro comando, el texto se guarda. Puede pegarlo de nuevo con el pag mando. (La yo vine nombre para esto es 'poner').

Eche un vistazo a cómo funciona esto. Primero borra una línea completa, colocando el cursor en la línea que desea borrar y escribiendo ' dd '. Ahora mueve el cursor a donde quieres poner la línea y usa el ' pag '(poner) comando. La línea se inserta en la línea debajo del cursor.

|_+_|

Debido a que eliminó una línea completa, el ' pag El comando 'colocó la línea de texto debajo del cursor. Si elimina parte de una línea (una palabra, por ejemplo), el ' pag El comando 'lo coloca justo después del cursor.

|_+_|

Poniendo

La ' PAG 'comando pone texto como' pag ', pero antes del cursor. Cuando borraste una línea completa con ' dd ', ' PAG 'lo volverá a colocar sobre el cursor. Cuando borraste una palabra con ' dw ', ' PAG 'lo volverá a colocar justo antes del cursor.

Puedes repetir el putt tantas veces como quieras. Se utilizará el mismo texto.

Puedes usar un recuento con ' pag ' y ' PAG '. El texto se repetirá tantas veces como se especifique con el recuento. Por lo tanto ' dd ' y entonces ' 3p 'pone tres copias de la misma línea eliminada.

Intercambio de personajes

yo vine facilita la corrección de problemas tales como escribir accidentalmente 'teh' en lugar de 'the'. Simplemente coloque el cursor en la e de 'teh' y ejecute el comando 'xp'. Esto funciona de la siguiente manera: ' x 'borra el carácter e y lo coloca en un registro. ' pag 'coloca el texto después del cursor, que está después de la' h '.

|_+_|

Copiar texto

Para copiar texto de un lugar a otro, puede eliminarlo, use ' tu 'para deshacer la eliminación y luego' pag 'para ponerlo en otro lugar. Hay una forma más fácil: tirando. La ' y El operador copia el texto en un registro. Entonces un ' pag 'comando se puede utilizar para ponerlo.

Yanking es solo un yo vine nombre para copiar. La ' c 'letter ya se usó para el operador de cambio, y' y 'todavía estaba disponible. Llamar a este operador 'tirón' hizo que fuera más fácil recordar usar el ' y ' clave.

Desde ' y 'es un operador, usas' es 'para tirar de una palabra. Un recuento es posible como de costumbre. Para tirar de dos palabras usa ' y2w '. Ejemplo:

|_+_|

Darse cuenta de ' es 'incluye el espacio en blanco después de una palabra. Si no quieres esto, usa ' S.M '.

La ' yy 'comando tira una línea completa, como' dd 'borra una línea completa. Inesperadamente, mientras ' D 'borra desde el cursor hasta el final de la línea,' Y 'funciona como' yy ', tira de toda la línea. ¡Cuidado con esta inconsistencia! Usar ' y$ 'para tirar hasta el final de la línea.

|_+_|

Usando el portapapeles

Si está utilizando la versión GUI de yo vine ( gvim ), puede encontrar el elemento 'Copiar' en el menú 'Editar'. Primero seleccione un texto con el modo Visual, luego use el menú Editar / Copiar. El texto seleccionado ahora se copia en el portapapeles. Puede pegar el texto en otros programas. En yo vine sí mismo también.

Si ha copiado texto al portapapeles en otra aplicación, puede pegarlo en yo vine con el menú Editar / Pegar. Esto funciona en el modo Normal y en el modo Insertar. En el modo Visual, el texto seleccionado se reemplaza por el texto pegado.

El elemento del menú 'Cortar' elimina el texto antes de que se coloque en el portapapeles. Los elementos 'Copiar', 'Cortar' y 'Pegar' también están disponibles en el menú emergente (solo cuando hay un menú emergente, por supuesto). Si tu yo vine tiene una barra de herramientas, también puede encontrar estos elementos allí.

Si no está usando la GUI, o si no le gusta usar un menú, debe usar otra forma. Usas lo normal ' y '(tirón) y' pag '(poner) comandos, pero anteponer '* (estrella de comillas dobles) antes. Para copiar una línea al portapapeles:

|_+_|

Para volver a colocar el texto del portapapeles en el texto:

|_+_|

Esto solo funciona en versiones de yo vine que incluyen soporte para portapapeles.

Objetos de texto

Si el cursor está en medio de una palabra y desea eliminar esa palabra, debe regresar al inicio antes de poder hacer 'dw'. Hay una forma más sencilla de hacer esto: ' grajilla '.

|_+_|

La ' D ' de ' grajilla 'es el operador de eliminación. ' aw 'es un objeto de texto. Insinuación: ' aw 'significa' Una palabra '. Por lo tanto ' grajilla 'es' Eliminar una palabra '. Para ser precisos, el espacio en blanco después de la palabra también se elimina (el espacio en blanco antes de la palabra al final de la línea).

El uso de objetos de texto es la tercera forma de realizar cambios en yo vine . Ya teníamos el modo de movimiento de operador y visual. Ahora agregamos el objeto operador-texto.

Es muy similar al operador-movimiento, pero en lugar de operar sobre el texto entre la posición del cursor antes y después de un comando de movimiento, el objeto de texto se usa como un todo. No importa en qué parte del objeto estaba el cursor.

Para cambiar una oración completa, use ' cis '. Toma este texto:

|_+_|

Vaya al comienzo de la segunda línea, en 'es un'. Ahora usa 'cis':

|_+_|

El cursor está entre los espacios en blanco de la primera línea. Ahora escribe la nueva oración 'Otra línea':

|_+_|

' cis 'consiste en el' c '(cambiar) operador y el objeto de texto' es '. Esto significa 'oración interna'. También existe el objeto 'como' (una oración). La diferencia es que 'como' incluye el espacio en blanco después de la oración y 'es' no. Si desea eliminar una oración, desea eliminar el espacio en blanco al mismo tiempo, por lo tanto, use ' la '. Si desea escribir texto nuevo, el espacio en blanco puede permanecer, por lo tanto, use ' cis '.

También puede utilizar objetos de texto en modo Visual. Incluirá el objeto de texto en la selección visual. El modo visual continúa, por lo que puede hacer esto varias veces. Por ejemplo, inicie el modo Visual con ' v 'y seleccione una oración con' como '. Ahora puedes repetir ' como 'para incluir más oraciones. Finalmente, usa un operador para hacer algo con las oraciones seleccionadas.

Modo de reemplazo

La ' R 'comando causas yo vine para ingresar al modo de reemplazo. En este modo, cada carácter que escribe reemplaza al que está debajo del cursor. Esto continúa hasta que escribe .

En este ejemplo, inicia el modo Reemplazar en el primer ' t ' de ' texto ':

|_+_|

Es posible que haya notado que este comando reemplazó 5 caracteres en la línea con otros doce. La ' R 'comando extiende automáticamente la línea si se queda sin caracteres para reemplazar. No continuará en la siguiente línea.

Puede cambiar entre el modo Insertar y el modo Reemplazar con el clave.

Cuando usas (retroceso) para hacer la corrección, notará que el texto antiguo se vuelve a colocar. Por lo tanto, funciona como un comando de deshacer para el último carácter escrito.

Conclusión

Los operadores, comandos de movimiento y objetos de texto le brindan la posibilidad de realizar muchas combinaciones. Ahora que sabe cómo funciona, puede usar N operadores con M comandos de movimiento para hacer N * M comandos.

Por ejemplo, existen otras formas de eliminar fragmentos de texto. Éstos son algunos de los que se utilizan con frecuencia:

x Eliminar carácter debajo del cursor (abreviatura de ' dl ').
X Eliminar carácter antes del cursor (abreviatura de ' es decir ').
D Eliminar desde el cursor hasta el final de la línea (abreviatura de ' d $ ').
dw Eliminar del cursor al siguiente comienzo de la palabra.
db Eliminar del cursor al inicio anterior de la palabra.
diw Elimina la palabra debajo del cursor (excluyendo los espacios en blanco).
grajilla Elimina la palabra debajo del cursor (incluido el espacio en blanco).
dG Eliminar hasta el final del archivo.
dgg Eliminar hasta el inicio del archivo.

Si utiliza ' c ' en vez de ' D 'se convierten en órdenes de cambio. Y con ' y 'tiras el texto. Etcétera.

Hay algunos comandos de uso frecuente para realizar cambios que no encajan en otro lugar:

~ Cambie entre mayúsculas y minúsculas el carácter debajo del cursor y mueva el cursor al siguiente carácter. Este no es un operador (a menos que ' tildeop 'está configurado), por lo que no puede usarlo con un comando de movimiento. Funciona en modo Visual y cambia entre mayúsculas y minúsculas para todo el texto seleccionado en ese momento.
I Inicie el modo Insertar después de mover el cursor al primer espacio que no esté en blanco en la línea.
A Inicie el modo Insertar después de mover el cursor al final de la línea.

El archivo vimrc

Probablemente se haya cansado de escribir comandos que usa con mucha frecuencia. Para comenzar yo vine con todas sus configuraciones y asignaciones de opciones favoritas, las escribe en lo que se llama vimrc expediente. yo vine ejecuta los comandos en este archivo cuando se inicia.

Si ya tienes un vimrc archivo (por ejemplo, cuando su administrador de sistemas tiene una configuración para usted), puede editarlo de esta manera:

|_+_|

Si no tienes un vimrc aún, puede crear uno. La ' :versión 'comando menciona el nombre del' archivo vimrc de usuario ' yo vine busca.

Para Unix y Macintosh, este archivo siempre se usa y se recomienda: ~ / .vimrc

Para MS-DOS y MS-Windows, puede utilizar uno de estos: $ HOME / _vimrc , $ VIM / _vimrc

La vimrc El archivo puede contener todos los comandos que escriba después de dos puntos. Los más simples son para configurar opciones. Por ejemplo, si quieres yo vine para empezar siempre con el ' buscar 'opción activada, agregue esta línea a su vimrc expediente:

|_+_|

Para que esta nueva línea surta efecto, debe salir yo vine y empezar de nuevo. Más tarde aprenderá a hacer esto sin salir yo vine .

Mapeos simples

Un mapeo le permite enlazar un conjunto de yo vine comandos a una sola tecla. Suponga, por ejemplo, que necesita rodear ciertas palabras con llaves. En otras palabras, debe cambiar una palabra como 'monto' por '{monto}'. Con el :mapa comando, puedes decir yo vine que el F5 key hace este trabajo. El comando es el siguiente:

|_+_|

Al ingresar este comando, debe ingresar escribiendo cuatro caracteres. Similar, no se ingresa presionando el , pero escribiendo cinco caracteres. Cuidado con esta diferencia.

Analicemos esto:

La F5 tecla de función. Esta es la tecla de activación que hace que se ejecute el comando cuando se presiona la tecla.
I{ Inserte el { personaje. La finaliza el modo Insertar.
es Ir al final de la palabra.
a} Anexar el } a la palabra.

Después de ejecutar el ' :mapa 'comando, todo lo que tienes que hacer para poner {} alrededor de una palabra es colocar el cursor sobre el primer carácter y presionar F5 .

En este ejemplo, el disparador es una sola tecla; puede ser cualquier cadena. Pero cuando usas un existente yo vine comando, ese comando ya no estará disponible. Será mejor que evites eso.

Una clave que se puede usar con asignaciones es la barra invertida. Dado que probablemente desee definir más de un mapeo, agregue otro carácter. Podrías mapear ' pag 'para agregar paréntesis alrededor de una palabra, y' c 'para agregar llaves, por ejemplo:

|_+_| |_+_|

Necesitas escribir el y el pag rápidamente tras otro, para que yo vine sabe que pertenecen juntos.

La ' :mapa 'comando (sin argumentos) enumera sus asignaciones actuales. Al menos los del modo Normal.

Agregar un complemento global

yo vine La funcionalidad de se puede ampliar agregando complementos. Un complemento no es más que un yo vine archivo de script que se carga automáticamente cuando yo vine empieza. Puede agregar un complemento muy fácilmente colocándolo en su directorio de complementos. + eval

Hay dos tipos de complementos: complementos globales, que se utilizan para todo tipo de archivos; y complementos de tipo de archivo, que solo se utilizan para un tipo específico de archivo.

Cuando empieces yo vine , cargará automáticamente una serie de complementos globales. No tienes que hacer nada por esto. Añaden funciones que la mayoría de la gente querrá usar, pero que se implementó como un yo vine script en lugar de estar compilado en.

Puede agregar un complemento global para agregar funcionalidad que siempre estará presente cuando use yo vine . Solo hay dos pasos para agregar un complemento global: obtenga una copia del complemento y colóquelo en el directorio correcto.

Obtener un complemento global

Algunos complementos globales vienen con yo vine . Puedes encontrarlos en el directorio $VIMRUNTIME/macros y es subdirectorios .

Otros se pueden descargar desde el sitio oficial. yo vine sitio web, https://vim.sourceforge.io/ .

Usando un complemento global

Primero lea el texto en el propio complemento para verificar si existen condiciones especiales. Luego copie el archivo a su directorio de complementos:

sistema directorio de complementos
Unix ~ / .Vim / complemento /
PC y OS / 2 $ HOME / vimfiles / complemento o $ VIM / vimfiles / complemento
Amiga s: vimfiles / complemento
Macintosh $ VIM: vimfiles: complemento
macOS X ~ / .Vim / complemento /
ARAÑAZOS Opciones: vimfiles.plugin

Ejemplo para Unix (suponiendo que aún no tenga un directorio de complementos):

|_+_| |_+_| |_+_|

¡Eso es todo! Ahora puede usar los comandos definidos en este complemento para justificar el texto.

En lugar de colocar complementos directamente en el enchufar/ directorio, puede organizarlos mejor colocándolos en subdirectorios bajo enchufar/ . Como ejemplo, considere usar ' ~ / .vim / plugin / perl / *. vim 'por todos tus Perl complementos.

Complementos de tipo de archivo

La yo vine La distribución viene con un conjunto de complementos para diferentes tipos de archivos que puede comenzar a usar con este comando:

|_+_|

Si le falta un complemento para un tipo de archivo que está usando, o encontró uno mejor, puede agregarlo. Hay dos pasos para agregar un complemento de tipo de archivo: obtenga una copia del complemento y colóquelo en el directorio correcto.

Opciones de uso frecuente

vim es un programa extenso, por lo que tiene muchas opciones. La mayoría de ellos casi nunca los usará. Algunos de los más útiles se mencionarán aquí. No olvide que puede encontrar más ayuda sobre estas opciones con el ' :ayuda ', con comillas simples antes y después del nombre de la opción. Por ejemplo:

|_+_|

En caso de que haya estropeado el valor de una opción, puede restablecerlo al valor predeterminado colocando un ampersand (&) después del nombre de la opción. Ejemplo:

|_+_|

yo vine normalmente envuelve líneas largas, de modo que pueda ver todo el texto. A veces es mejor dejar que el texto continúe a la derecha de la ventana. Luego, debe desplazarse por el texto de izquierda a derecha para ver toda una línea larga. Apague el envoltorio con este comando:

|_+_|

yo vine desplazará automáticamente el texto cuando se mueva a texto que no se muestra. Para ver un contexto de diez caracteres, haga esto:

|_+_|

Esto no cambia el texto del archivo, solo la forma en que se muestra.

La mayoría de los comandos para moverse dejarán de moverse al principio y al final de una línea. Puedes cambiar eso con el ' cual envoltura ' opción. Esto lo establece en el valor predeterminado:

|_+_|

Esto permite , cuando se usa en la primera posición de una línea, para mover el cursor al final de la línea anterior. Y el La tecla se mueve desde el final de una línea hasta el comienzo de la siguiente.

Para permitir las teclas del cursor y para ajustar también, use este comando:

|_+_|

Esto sigue siendo solo para el modo Normal. Dejar y haz esto también en el modo Insertar:

|_+_|

Hay algunas otras banderas que se pueden agregar, consulte ' cual envoltura '.

Usar el resaltado de sintaxis

Todo comienza con un simple comando:

|_+_|

Eso debería funcionar en la mayoría de situaciones para obtener color en sus archivos. El comando vim detectará automáticamente el tipo de archivo y cargará el resaltado de sintaxis correcto. De repente, los comentarios aparecen en azul, las palabras clave en marrón y las cadenas en rojo. Esto facilita la vista general del archivo. ¡Después de un tiempo, encontrará que el texto en blanco y negro lo ralentiza!

Si siempre desea utilizar el resaltado de sintaxis, coloque el ' : habilitación de sintaxis 'comando en tu vimrc expediente.

Si desea resaltar la sintaxis solo cuando el terminal admite colores, puede poner esto en su vimrc expediente:

|_+_|

Si desea resaltar la sintaxis solo en la versión de GUI, coloque el ' : habilitación de sintaxis 'comando en tu gvimrc expediente.

Elegir colores

yo vine adivina el color de fondo que estás usando. Si es negro (u otro color oscuro), usará colores claros para el texto. Si es blanco (u otro color claro), usará colores oscuros para el texto. Si yo vine adivinado mal, el texto será difícil de leer. Para resolver esto, establezca el ' antecedentes ' opción. Para un fondo oscuro:

|_+_|

Y para un fondo claro:

|_+_|

Asegúrate de poner esto antes del ' : habilitación de sintaxis ', de lo contrario, los colores ya se habrán configurado. Podrías hacerlo ' : reinicio de sintaxis 'después de configurar' antecedentes ' para hacer yo vine establezca los colores predeterminados nuevamente.

Si no le gustan los colores predeterminados, puede seleccionar otro esquema de color. En la GUI use el menú Editar / Esquema de color. También puede escribir el comando:

|_+_|

' noche 'es el nombre del esquema de color. Hay varios otros que quizás desee probar. Busque en el directorio $ VIMRUNTIME / colores .

Cuando encuentre el esquema de color que le gusta, agregue el ' :esquema de colores 'comando a tu vimrc expediente.

También puedes escribir un esquema de colores. Así es como lo haces:

(1) Seleccione un esquema de color que se acerque. Copie este archivo a su yo vine directorio. Para Unix, esto debería funcionar. Estos comandos se realizan desde dentro yo vine :

|_+_| |_+_|

(2) Edite el archivo de combinación de colores. Estas entradas son útiles:

término atributos en una terminal en blanco y negro
cterm atributos en un terminal de color
ctermfg color de primer plano en un terminal de color
ctermbg color de fondo en un terminal de color
interfaz gráfica de usuario atributos en la GUI
guifg color de primer plano en la GUI
guibg color de fondo en la GUI

Por ejemplo, para hacer que los comentarios sean verdes:

|_+_|

Atributos que puede utilizar para ' cterm ' y ' interfaz gráfica de usuario ' están ' negrita ' y ' subrayar '. Si quieres ambos, usa ' negrita, subrayado '.

(3) Cuenta yo vine para usar siempre su combinación de colores. Pon esta línea en tu vimrc :

|_+_|

Si desea ver cómo se ven las combinaciones de colores más utilizadas, use este comando:

|_+_|

Verá texto en varias combinaciones de colores. Puede comprobar cuáles son legibles y se ven bien.

Editando otro archivo

Una vez que esté en yo vine , puede comenzar a editar otro archivo usando este comando:

|_+_|

Puede utilizar cualquier nombre de archivo en lugar de 'foo.txt'. yo vine cerrará el archivo actual y abrirá el nuevo. Sin embargo, si el archivo actual tiene cambios sin guardar, yo vine muestra un mensaje de error y no abre el nuevo archivo:

|_+_|

yo vine pone un ID de error al comienzo de cada mensaje de error. Si no comprende el mensaje o su causa, busque este ID en el sistema de ayuda. En este caso:

|_+_|

En este punto, tiene varias alternativas. Puede escribir el archivo usando este comando:

|_+_|

O puedes forzar yo vine para descartar sus cambios y editar el nuevo archivo, usando la fuerza ( ! ) personaje:

|_+_|

Si desea editar otro archivo, pero aún no escribe los cambios en el archivo actual, puede ocultarlo:

|_+_|

El texto con los cambios sigue ahí, pero no puede verlo.

Editar una lista de archivos

Tu puedes empezar yo vine para editar una secuencia de archivos. Por ejemplo:

|_+_|

Este comando comienza yo vine y le dice que editará tres archivos. yo vine muestra solo el primer archivo. Una vez que haya hecho lo suyo en este archivo, para editar el siguiente archivo, use este comando:

|_+_|

Si tiene cambios sin guardar en el archivo actual, obtendrá un mensaje de error y el ' :Siguiente ' no trabajará. Este es el mismo problema que con ' :editar 'mencionado en la sección anterior. Para abandonar los cambios:

|_+_|

Pero principalmente desea guardar los cambios y pasar al siguiente archivo. Hay un comando especial para esto:

|_+_|

Esto hace lo mismo que usar dos comandos separados:

|_+_| |_+_|

Para ver qué archivo de la lista de argumentos está editando, mire en el título de la ventana. Debería mostrar algo como ' (2 de 3) '. Esto significa que está editando el segundo archivo de tres archivos.

Si desea ver la lista de archivos, use este comando:

|_+_|

Es la abreviatura de 'argumentos'. La salida podría verse así:

|_+_|

Estos son los archivos con los que inició vim. El que está editando actualmente, 'two.c', está entre corchetes.

Mover de un archivo a otro

Para retroceder un archivo:

|_+_|

Esto es como el ' :Siguiente ', excepto que se mueve en la otra dirección. Nuevamente, hay un comando de acceso directo para cuando desee escribir el archivo primero:

|_+_|

Para pasar al último archivo de la lista:

|_+_|

Y para volver al primero de nuevo:

|_+_|

No hay ' : wlast ' o ' : wfirst 'comando sin embargo.

Puede usar un recuento para ' :Siguiente ' y ' :anterior '. Para saltar dos archivos hacia adelante:

|_+_|

Archivos de respaldo

Por lo general yo vine no produce un archivo de respaldo. Si desea tener uno, todo lo que necesita hacer es ejecutar el siguiente comando:

|_+_|

El nombre del archivo de respaldo es el archivo original con un tilde (' ~ ') añadido al final. Si su archivo se llama data.txt , por ejemplo, el nombre del archivo de respaldo es data.txt ~ . Si no le gusta el hecho de que los archivos de copia de seguridad terminen con ~ , puede cambiar la extensión:

|_+_|

Esto usará data.txt.bak en vez de data.txt ~ .

Otra opción que importa aquí es ' backupdir '. Especifica dónde se escribe el archivo de respaldo. El valor predeterminado, escribir la copia de seguridad en el mismo directorio que el archivo original, será en su mayoría lo correcto.

Cuando el ' respaldo 'no está configurada, pero la' escribir copia de seguridad ' es, yo vine aún crea un archivo de respaldo. Sin embargo, se elimina tan pronto como se completa con éxito la escritura del archivo. Esto funciona como una seguridad contra la pérdida de su archivo original cuando la escritura falla de alguna manera (el disco lleno es la causa más común).

Si está editando archivos de origen, es posible que desee conservar el archivo antes de realizar cambios. Pero el archivo de respaldo se sobrescribirá cada vez que escriba el archivo. Por lo tanto, solo contiene la versión anterior, no la primera.

Para hacer yo vine mantenga el archivo original, establezca la opción 'patchmode'. Esto especifica la extensión utilizada para la primera copia de seguridad de un archivo modificado. Normalmente harías esto:

|_+_|

Cuando edite el archivo data.txt por primera vez, haga cambios y escriba el archivo, yo vine mantiene una copia del archivo sin cambios con el nombre ' data.txt.orig '.

Si realiza más cambios en el archivo, yo vine nota que ' data.txt.orig 'ya existe y déjelo en paz. A continuación, se llamarán más archivos de copia de seguridad ' data.txt ~ '(o lo que haya especificado con' backupext ').

Si te vas ' modo parche 'vacío (que es el valor predeterminado), el archivo original no se conservará.

Usando registros

Cuando desee copiar varios fragmentos de texto de un archivo a otro, tener que cambiar entre los archivos y escribir el archivo de destino lleva mucho tiempo. Para evitar esto, copie cada fragmento de texto en su propio registro.

Un registro es un lugar donde vim almacena texto. Aquí usaremos los registros denominados de la a a la z (más adelante descubrirá que hay otros). Copiemos una oración al F registrarse (f para Primero):

|_+_|

La ' edad 'comando tira una oración como antes. Es el 'F eso dice yo vine el texto debe colocarse en el F Registrarse. Esto debe venir justo antes de la orden de tirar.

Ahora tira tres líneas completas al l Registrarse ( l para línea):

|_+_|

El recuento podría ser antes del 'la igual de bien. Para tirar de un bloque de texto al b (para bloque) registro:

|_+_|

Observe que la especificación de registro 'b está justo antes del comando' y '. Esto es requerido. Si lo hubiera puesto antes del comando 'w', no habría funcionado.

Ahora tienes tres fragmentos de texto en el F , l y b registros. Edite otro archivo, muévase y coloque el texto donde lo desee:

|_+_|

Una vez más, la especificación del registro 'F viene antes del ' pag 'comando.

Puede poner los registros en cualquier orden. Y el texto permanece en el registro hasta que le agregas algo más. Así podrás ponerlo tantas veces como quieras.

Cuando borra texto, también puede especificar un registro. Use esto para mover varios fragmentos de texto. Por ejemplo, para borrar una palabra y escribirla en el en Registrarse:

|_+_|

Nuevamente, la especificación del registro viene antes del comando de eliminación ' D .'

Ver un archivo de solo lectura

A veces, solo desea ver lo que contiene un archivo, sin la intención de volver a escribirlo. Existe el riesgo de que escriba ' :en 'sin pensar y sobrescribir el archivo original de todos modos. Para evitar esto, edite el archivo en modo de solo lectura.

Para comenzar yo vine en modo de solo lectura, use este comando:

|_+_|

En Unix, este comando debería hacer lo mismo:

|_+_|

Ahora está editando 'archivo' en modo de solo lectura. Cuando intentas usar ': w', obtienes un mensaje de error y el archivo no se escribirá.

Cuando intenta realizar un cambio en el archivo, vim le da una advertencia:

|_+_|

Sin embargo, el cambio se hará. Esto permite formatear el archivo, por ejemplo, para poder leerlo fácilmente.

Si realiza cambios en un archivo y olvidó que era de solo lectura, aún puede escribirlo. Añade el ! al comando de escritura para forzar la escritura.

Si realmente desea prohibir la realización de cambios en un archivo, haga lo siguiente:

|_+_|

Ahora todo intento de cambiar el texto fallará. Los archivos de ayuda son así, por ejemplo. Si intenta realizar un cambio, aparece este mensaje de error:

|_+_|

Podrías usar el -METRO argumento para configurar yo vine para trabajar en modo de visor. Sin embargo, esto es solo voluntario, ya que estos comandos eliminan la protección:

|_+_| |_+_|

Guardar como un nuevo nombre de archivo

Una forma inteligente de comenzar a editar un archivo nuevo es utilizar un archivo existente que contenga la mayor parte de lo que necesita. Por ejemplo, comienza a escribir un nuevo programa para mover un archivo. Usted sabe que ya tiene un programa que copia un archivo, por lo que comienza con:

|_+_|

Puede eliminar las cosas que no necesita. Ahora necesita guardar el archivo con un nuevo nombre. La ' :guardar como 'comando se puede utilizar para esto:

|_+_|

yo vine escribe el archivo con el nombre dado y edita ese archivo. Así, la próxima vez que lo hagas ' :escribir , 'escribe' move.c '. ' copy.c 'permanece sin modificar.

Cuando desee cambiar el nombre del archivo que está editando, pero no desea escribir el archivo, puede usar este comando:

|_+_|

yo vine marcará el archivo como 'no editado'. Esto significa que vim sabe que este no es el archivo que comenzó a editar. Cuando intenta escribir el archivo, es posible que reciba este mensaje:

|_+_|

Esto le protege de sobrescribir accidentalmente otro archivo.

División de ventanas

La forma más sencilla de abrir una nueva ventana es usar el siguiente comando:

|_+_|

Este comando divide la pantalla en dos ventanas y deja el cursor en la superior:

|_+_|

Lo que ve aquí son dos ventanas en el mismo archivo. La línea con '====' es esa línea de estado. Muestra información sobre la ventana que está encima. En la práctica, la línea de estado estará en video inverso.

Las dos ventanas le permiten ver dos partes del mismo archivo. Por ejemplo, puede hacer que la ventana superior muestre las declaraciones de variables de un programa y la inferior el código que usa estas variables.

La Ctrl-W w El comando se puede utilizar para saltar entre las ventanas. Si estás en la ventana superior, Ctrl-W w salta a la ventana debajo de ella. Si está en la ventana inferior, salta a la primera ventana. Ctrl-W Ctrl-W hace lo mismo, en caso de que sueltes el control clave un poco más tarde.

Para cerrar una ventana, use el comando:

|_+_|

En realidad, cualquier comando que deje de editar un archivo funciona, como ' :dejar ' y ' ZZ '. Pero ' :cerca 'evita que salga accidentalmente de vim cuando cierra la última ventana.

Si ha abierto un montón de ventanas, pero ahora quiere concentrarse en una de ellas, este comando será útil:

|_+_|

Esto cierra todas las ventanas, excepto la actual. Si alguna de las otras ventanas tiene cambios, recibirá un mensaje de error y esa ventana no se cerrará.

Dividir una ventana en otro archivo

El siguiente comando abre una segunda ventana y comienza a editar el archivo dado:

|_+_|

Si estuvieras editando uno.c , entonces el resultado se ve así:

|_+_|

Para abrir una ventana en un archivo nuevo y vacío, use esto:

|_+_|

Puede repetir los comandos ': split' y ': new' para crear tantas ventanas como desee.

Tamaño de ventana

La ' :separar El comando 'puede tomar un argumento numérico. Si se especifica, esta es la altura de la nueva ventana. Por ejemplo, lo siguiente abre una nueva ventana de tres líneas de alto y comienza a editar el archivo. alpha.c :

|_+_|

Para las ventanas existentes, puede cambiar el tamaño de varias formas. Cuando tiene un mouse que funciona, es fácil: mueva el puntero del mouse a la línea de estado que separa dos ventanas y arrástrelo hacia arriba o hacia abajo.

Para aumentar el tamaño de una ventana: Ctrl-W +

Para disminuirlo: Ctrl-W -

Ambos comandos cuentan y aumentan o disminuyen el tamaño de la ventana en esa cantidad de líneas. Por lo tanto ' 4 Ctrl-W + 'Haga la ventana cuatro líneas más alta.

Para establecer la altura de la ventana en un número específico de líneas: {altura} Ctrl-W _

Eso es: un número {altura} , Ctrl-W y luego un guión bajo. Para hacer una ventana lo más alta posible, use el Ctrl-W _ comando sin contar.

Usando el raton

En yo vine puede hacer muchas cosas muy rápidamente desde el teclado. Desafortunadamente, los comandos de cambio de tamaño de la ventana requieren bastante escritura. En este caso, usar el mouse es más rápido. Coloque el puntero del mouse en una línea de estado. Ahora presione el botón izquierdo del mouse y arrastre. La línea de estado se mueve, haciendo que la ventana de un lado sea más alta y la otra más pequeña.

Opciones

La ' winheight 'La opción se puede configurar a una altura mínima deseada de una ventana y' winminheight 'a una altura mínima dura. Asimismo, hay ' winwidth 'para el ancho mínimo deseado y' winminwidth 'para el ancho mínimo duro. La ' siempre ', cuando se establece, hace yo vine igualar los tamaños de las ventanas cuando una ventana está cerrada o abierta.

Divisiones verticales

La ' :separar El comando 'crea la nueva ventana sobre la actual. Para que la ventana aparezca en el lado izquierdo, use:

|_+_|

o:

|_+_|

El resultado se parece a esto:

|_+_|

En realidad, el || las líneas en el medio estarán en video inverso. A esto se le llama separador vertical. Separa las dos ventanas a la izquierda y a la derecha.

También está el ' : vnuevo ', para abrir una ventana dividida verticalmente en un archivo nuevo y vacío. Otra forma de hacer esto:

|_+_|

La ' :vertical El comando '' se puede insertar antes de otro comando que divide una ventana. Esto hace que ese comando divida la ventana verticalmente en lugar de horizontalmente. Si el comando no divide una ventana, funciona sin modificaciones.

Moverse entre ventanas

Dado que puede dividir las ventanas horizontal y verticalmente tanto como desee, puede crear casi cualquier diseño de ventanas. Entonces puedes usar estos comandos para moverte entre ellos:

Ctrl-W h Muévete a la ventana de la izquierda.
Ctrl-W j Muévase a la ventana de abajo.
Ctrl-W k Muévete a la ventana de arriba.
Ctrl-W l Muévete a la ventana de la derecha.
Ctrl-W t Mover a la ventana SUPERIOR.
Ctrl-W b Vaya a la ventana INFERIOR.

Notará las mismas letras que se usaron para mover el cursor. Y las teclas del cursor también se pueden usar, si lo desea.

Mover ventanas

Ha dividido algunas ventanas, pero ahora están en el lugar equivocado. Entonces necesitas un comando para mover la ventana a otro lugar. Por ejemplo, tiene tres ventanas como esta:

|_+_|

Claramente, el último debería estar en la parte superior. Ve a esa ventana (usando Ctrl-W w ) y escriba este comando: Ctrl-W K

Esto usa la letra mayúscula A . Lo que pasa es que la ventana se mueve hacia arriba. Notarás que A se utiliza de nuevo para moverse hacia arriba. Cuando tienes divisiones verticales, Ctrl-W K mueve la ventana actual a la parte superior y hace que ocupe todo el ancho de la yo vine ventana. Si este es tu diseño:

|_+_|

Luego usando Ctrl-W K en la ventana del medio tres.c ) resultará en:

|_+_|

Los otros tres comandos similares (probablemente puedas adivinarlos ahora):

Ctrl-W H Mueva la ventana hacia el extremo izquierdo.
Ctrl-W J Mueva la ventana al fondo.
Ctrl-W L Mueva la ventana hacia el extremo derecho.

Comandos para todas las ventanas

Cuando tienes varias ventanas abiertas y quieres salir yo vine , puede cerrar cada ventana por separado. Una forma más rápida es usar este comando:

|_+_|

Esto significa 'dejar todo'. Si alguna de las ventanas contiene cambios, yo vine no saldrá. El cursor se colocará automáticamente en una ventana con cambios. A continuación, puede utilizar ' :escribir 'para guardar los cambios, o' :¡dejar! 'para tirarlos.

Si sabe que hay ventanas con cambios y desea guardar todos estos cambios, use este comando:

|_+_|

Esto significa 'escribir todo'. Pero en realidad, solo escribe archivos con cambios. El comando vim sabe que no tiene sentido escribir archivos que no fueron modificados.

Y luego está la combinación de ' : qall ' y ' :pared ': el comando' escribir y salir de todo '':

|_+_|

Esto escribe todos los archivos modificados y se cierra yo vine .

Finalmente, hay un comando que se cierra yo vine y tira todos los cambios:

|_+_|

¡Tenga cuidado, no hay forma de deshacer este comando!

Abrir una ventana para todos los archivos

Para hacer yo vine abra una ventana para cada archivo, comience con el ' -o ' argumento:

|_+_|

Esto resulta en:

|_+_|

La ' -O El argumento 'se usa para obtener ventanas divididas verticalmente.

Cuándo yo vine ya está funcionando, el ' :todas El comando 'abre una ventana para cada archivo en la lista de argumentos. ' : vertical todo 'lo hace con divisiones verticales.

Ver diferencias con vimdiff

Hay una forma especial de empezar yo vine , que muestra las diferencias entre dos archivos. Tomemos un archivo 'main.c' e insertemos algunos caracteres en una línea. Escriba este archivo con la opción 'copia de seguridad' configurada, de modo que el archivo de copia de seguridad 'main.c ~' contenga la versión anterior del archivo.

Escriba este comando en un shell (no en yo vine ):

|_+_|

yo vine comienza, con dos ventanas una al lado de la otra. Solo verá la línea en la que agregó caracteres y algunas líneas arriba y abajo.

|_+_|

Esta imagen no muestra el resaltado, use el vimdiff comando para una mejor apariencia.

Las líneas que no se modificaron se han contraído en una sola línea. A esto se le llama pliegue cerrado. Están indicados en la imagen con ' <- fold '. Por lo tanto, la línea de pliegue simple en la parte superior representa 123 líneas de texto. Estas líneas son iguales en ambos archivos.

La línea marcada con ' <- changed line 'se resalta y el texto insertado se muestra con otro color. Esto muestra claramente cuál es la diferencia entre los dos archivos.

La línea que se eliminó se muestra con ' --- 'en la ventana main.c. Ver el ' <- deleted line 'marcador en la imagen. Estos personajes no están realmente ahí. Simplemente llenan main.c, de modo que muestre el mismo número de líneas que la otra ventana.

La columna de plegado

Cada ventana tiene una columna a la izquierda con un fondo ligeramente diferente. En la imagen de arriba, estos se indican con 'VV'. Observa que hay un carácter más allí, delante de cada pliegue cerrado. Mueva el puntero del mouse a ese signo más y haga clic en el botón izquierdo. Se abre el pliegue y puede ver el texto que contiene.

La columna de pliegue contiene un signo menos para un pliegue abierto. Si hace clic en este -, el pliegue se cierra. Obviamente, esto solo funciona cuando tienes un mouse que funciona. También puede usar 'zo' para abrir un pliegue y 'zc' para cerrarlo.

Diferenciando en vim

Otra forma de comenzar en modo diferencial se puede hacer desde adentro yo vine . Edite el archivo 'main.c', luego haga una división y muestre las diferencias:

|_+_| |_+_|

La ' :vertical El comando 'se usa para hacer que la ventana se divida verticalmente. Si omite esto, obtendrá una división horizontal.

Si tiene un parche o un archivo diff, puede utilizar la tercera forma de iniciar el modo diff. Primero edite el archivo al que se aplica el parche. Luego dígale a vim el nombre del archivo de parche:

|_+_| |_+_|

ADVERTENCIA: El archivo de parche debe contener solo un parche, para el archivo que está editando. De lo contrario, recibirá muchos mensajes de error y es posible que algunos archivos se parcheen inesperadamente.

El parche solo se hará a la copia del archivo en yo vine . El archivo de su disco duro no se modificará (hasta que decida escribir el archivo).

Enlace de desplazamiento

Cuando los archivos tengan más cambios, puede desplazarse de la forma habitual. yo vine intentará mantener ambas ventanas en la misma posición, para que pueda ver fácilmente las diferencias una al lado de la otra.

Cuando no quieras esto por un momento, usa este comando:

|_+_|

Saltando a los cambios

Cuando ha desactivado el plegado de alguna manera, puede ser difícil encontrar los cambios. Utilice este comando para pasar al siguiente cambio:

|_+_|

Para ir al revés use:

|_+_|

Antepuesto un recuento para saltar más lejos.

Eliminar cambios

Puede mover texto de una ventana a otra. Esto elimina las diferencias o agrega otras nuevas. El comando vim no mantiene actualizado el resaltado en todas las situaciones. Para actualizarlo use este comando:

|_+_|

Para eliminar una diferencia, puede mover el texto de un bloque resaltado de una ventana a otra. Tome el ejemplo anterior 'main.c' y 'main.c ~'. Mueva el cursor a la ventana de la izquierda, en la línea que se eliminó en la otra ventana. Ahora escribe este comando:

|_+_|

El cambio se eliminará colocando el texto de la ventana actual en la otra ventana. 'dp' significa 'diff put'.

También puedes hacerlo al revés. Mueva el cursor a la ventana derecha, a la línea donde se insertó 'cambiado'. Ahora escribe este comando:

|_+_|

El cambio ahora se eliminará al obtener el texto de la otra ventana. Como no quedan cambios ahora, vim coloca todo el texto en un pliegue cerrado. 'do' significa 'diff obtener'. 'dg' hubiera sido mejor, pero eso ya tiene un significado diferente ('dgg' borra del cursor hasta la primera línea).

Opciones misceláneas

La ' estado de carga La opción 'se puede usar para especificar cuándo la última ventana tiene una línea de estado:

0 Nunca
1 solo cuando hay ventanas divididas (por defecto)
2 siempre

Muchos comandos que editan otro archivo tienen una variante que divide la ventana. Para los comandos de la línea de comandos, esto se hace anteponiendo una 's'. Por ejemplo: ' :etiqueta 'salta a una etiqueta' :ciervo 'divide la ventana y salta a una etiqueta.

Para los comandos del modo Normal Ctrl-W se antepone. Ctrl- ^ salta al archivo alternativo, Ctrl-W Ctrl- ^ divide la ventana y edita el archivo alternativo.

La ' dividir abajo 'se puede configurar para que aparezca una nueva ventana debajo de la ventana actual. La ' splitright La opción 'se puede configurar para que aparezca una ventana dividida verticalmente a la derecha de la ventana actual.

Al dividir una ventana, puede anteponer un comando de modificación para indicar dónde debe aparecer la ventana:

: leftabove {cmd} a la izquierda o arriba de la ventana actual
: aboveleft {cmd} lo mismo
: rightbelow {cmd} a la derecha o debajo de la ventana actual
: abajo a la derecha {cmd} lo mismo
: topleft {cmd} en la parte superior o izquierda de la ventana de vim
: botright {cmd} en la parte inferior o derecha de la ventana de vim

Páginas de pestañas

Habrá notado que las ventanas nunca se superponen. Eso significa que rápidamente se queda sin espacio en la pantalla. La solución para esto se llama páginas de pestañas.

Suponga que está editando 'este archivo'. Para crear una nueva pestaña, use este comando:

|_+_|

Esto editará el archivo 'thatfile' en una ventana que ocupa toda la ventana de vim. Y notará una barra en la parte superior con los dos nombres de archivo:

|_+_|

Ahora tiene dos páginas de pestañas. El primero tiene una ventana para 'este archivo' y el segundo una ventana para 'ese archivo'. Es como dos páginas que están una encima de la otra, con una pestaña que sobresale de cada página que muestra el nombre del archivo.

Ahora use el mouse para hacer clic en 'este archivo' en la línea superior. El resultado es

|_+_|

Por lo tanto, puede cambiar entre páginas de pestañas haciendo clic en la etiqueta en la línea superior. Si no tiene un mouse o no quiere usarlo, puede usar el comando 'gt'. Puede recordarlo como una abreviatura de 'Ir a pestaña'.

Ahora creemos otra pestaña con el comando:

|_+_|

Esto crea una nueva pestaña con una ventana que está editando el mismo búfer que la ventana en la que estábamos:

|_+_|

Puedes poner ' :pestaña 'antes de cualquier comando Ex que abra una ventana. La ventana se abrirá en una nueva pestaña. Otro ejemplo:

|_+_|

Mostrará el texto de ayuda para ' gt 'en una página de nueva pestaña.

Algunas cosas más que puede hacer con las páginas de pestañas:

  • haga clic con el mouse en el espacio después de la última etiqueta. Se seleccionará la página de la siguiente pestaña, como con ' gt '.
  • haga clic con el mouse en la 'X' en la esquina superior derecha. Se cerrará la página de la pestaña actual. A menos que haya cambios sin guardar en la página de la pestaña actual.
  • haga doble clic con el mouse en la línea superior. Se creará una nueva pestaña.
  • la ' tabonly 'comando. Cierra todas las pestañas excepto la actual. A menos que haya cambios sin guardar en otras páginas de pestañas.

Macros

La ' . El comando 'repite el cambio anterior. Pero, ¿y si quieres hacer algo más complejo que un solo cambio? Ahí es donde entra en juego la grabación de comandos, más conocida como macro . Hay tres pasos:

(1) El ' q {registrarse} 'comando comienza a grabar las pulsaciones de teclas en el registro llamado {Registrarse} . El nombre del registro debe estar entre a y con .

(2) Escriba sus comandos.

(3) Para finalizar la grabación, presione q (sin ningún carácter extra).

Ahora puede ejecutar la macro escribiendo el comando ' @{Registrarse } '. Eche un vistazo a cómo utilizar estos comandos en la práctica. Tiene una lista de nombres de archivos que se ven así:

|_+_|

Y lo que quieres es lo siguiente:

|_+_|

Empiece moviéndose al primer carácter de la primera línea. A continuación, ejecuta los siguientes comandos:

qa Iniciar la grabación de una macro en el registro a .
^ Moverse al principio de la línea.
Incluyo ' Inserta la cuerda #include ' al principio de la línea.
$ Muévete hasta el final de la línea.
a' Agregue el carácter comillas dobles ( ' ) hasta el final de la línea.
j Vaya a la siguiente línea.
q Deja de grabar la macro.

Ahora que ha hecho el trabajo una vez, puede repetir el cambio escribiendo el comando ' @a ' tres veces.

La ' @a El comando 'puede ir precedido de un recuento, lo que hace que la macro se ejecute ese número de veces. En este caso, escribiría:

|_+_|

Mover y ejecutar

Es posible que tenga las líneas que desee cambiar en varios lugares. Simplemente mueva el cursor a cada ubicación y use el ' @a 'comando. Si lo ha hecho una vez, puede hacerlo de nuevo con ' @@ '. Eso es un poco más fácil de escribir. Si ahora ejecuta register b con ' @b ', el siguiente ' @@ registro de usos b .

Si compara el método de reproducción con el uso de ' . ', hay varias diferencias. En primer lugar, ' . 'solo se puede repetir un cambio. Como se ve en el ejemplo anterior, ' @a 'puede hacer varios cambios y moverse también. En segundo lugar, ' . 'solo puedo recordar el último cambio. La ejecución de un registro le permite realizar cualquier cambio y luego seguir usando ' @a 'para reproducir los comandos grabados. Finalmente, puede utilizar 26 registros diferentes. Por lo tanto, puede recordar 26 secuencias de comandos diferentes para ejecutar.

Usando registros

Los registros que se usan para grabar son los mismos que usó para los comandos de extracción y eliminación. Esto le permite mezclar la grabación con otros comandos para manipular los registros.

Suponga que ha grabado algunos comandos en el registro norte . Cuando ejecutas esto con ' @norte '' notas que hiciste algo mal. Puede intentar grabar de nuevo, pero tal vez cometa otro error. En su lugar, usa este truco:

GRAMO Vaya al final del archivo.
o Crea una línea vacía.
'p.ej. Pon el texto de la norte Registrarse. Ahora verá los comandos que escribió como texto en el archivo.
{ediciones} Cambie los comandos que estaban mal. Es como editar texto.
0 Ve al inicio de la línea.
'ny $ Introduzca los comandos corregidos en el norte Registrarse.
dd Elimina la línea cero.

Ahora puede ejecutar los comandos corregidos con ' @norte '. Si sus comandos grabados incluyen saltos de línea, ajuste los dos últimos elementos del ejemplo para incluir todas las líneas.

Agregar a un registro

Hasta ahora hemos utilizado una letra minúscula para el nombre del registro. Para agregar a un registro, use una letra mayúscula.

Suponga que ha grabado un comando para cambiar una palabra a registrar c . Funciona correctamente, pero le gustaría agregar una búsqueda de la siguiente palabra para cambiar. Esto se puede hacer con:

|_+_|

Empiezas con ' qC ', que se registra en el registro c y se adjunta. Por lo tanto, escribir en un nombre de registro en mayúsculas significa agregar al registro la misma letra, pero en minúsculas.

Esto funciona tanto con la grabación como con los comandos yank y delete. Por ejemplo, desea recopilar una secuencia de líneas en un registro. Tira de la primera línea con:

|_+_|

Ahora vaya a la segunda línea y escriba:

|_+_|

Repita este comando para todas las líneas. El registro a ahora contiene todas esas líneas, en el orden en que las extrajo.

Sustitución

La ' :sustituir El comando 'le permite realizar reemplazos de cadenas en una amplia gama de líneas. La forma general de este comando es la siguiente:

|_+_|

Este comando cambia el ' de 'cadena a la' a 'cadena en las líneas especificadas con [distancia] . Por ejemplo, puede cambiar 'Profesor' a 'Profesor' en todas las líneas con el siguiente comando:

|_+_|

Nota la ' :sustituir El comando 'casi nunca se explica completamente. La mayoría de las veces, la gente usa la versión abreviada ' :s '. A partir de aquí se utilizará la abreviatura.

La ' % 'antes de que el comando especifique, el comando funciona en todas las líneas. Sin rango ' :s 'solo funciona en la línea actual.

Por defecto, el ' :sustituir El comando 'cambia solo la primera aparición en cada línea. Por ejemplo, el comando anterior cambia la línea:

|_+_|

a:

|_+_|

Para cambiar cada ocurrencia en la línea, necesita agregar el gramo bandera (global). El comando:

|_+_|

da como resultado (comenzando con la línea original):

|_+_|

Otras banderas incluyen pag (imprimir), lo que provoca el ' :sustituir 'comando para imprimir la última línea que cambia. La c (confirmar) la bandera dice ' :sustituir 'para pedirle confirmación antes de realizar cada sustitución. Introduzca la siguiente:

|_+_|

yo vine encuentra la primera aparición de 'Profesor' y muestra el texto que está a punto de cambiar. Obtiene el siguiente mensaje:

|_+_|

En este punto, debe ingresar una de las siguientes respuestas:

y Sí; haz este cambio.
norte No; omitir este partido.
a Todas; realice este cambio y todos los restantes sin más confirmación.
q Dejar; no hagas más cambios.
l Último; haga este cambio y luego salga.
Ctrl-E Desplace el texto una línea hacia arriba.
Ctrl-Y Desplace el texto una línea hacia abajo.

La parte 'from' del comando sustituto es en realidad un patrón. Del mismo tipo que se utiliza para el comando de búsqueda. Por ejemplo, este comando solo sustituye a 'the' cuando aparece al principio de una línea:

|_+_|

Si está sustituyendo con una parte 'desde' o 'a' que incluye una barra, debe poner una barra invertida antes. Una forma más sencilla es utilizar otro carácter en lugar de la barra. Un plus, por ejemplo:

|_+_|

Rangos de comando

La ' :sustituir 'comando, y otros : comandos, se pueden aplicar a una selección de líneas. A esto se le llama rango.

La forma simple de un rango es {número}, {número} . Por ejemplo:

|_+_|

Ejecuta el comando sustituto en las líneas 1 a 5. Se incluye la línea 5. El rango siempre se coloca antes del comando.

Se puede usar un solo número para abordar una línea específica:

|_+_|

Algunos comandos funcionan en todo el archivo cuando no especifica un rango. Para que funcionen en la línea actual, el ' . se utiliza la dirección. La ' :escribir 'comando funciona así. Sin rango, escribe todo el archivo. Para que escriba solo la línea actual en un archivo:

|_+_|

La primera línea siempre tiene el número uno. ¿Qué tal la última línea? La ' $ 'se utiliza para esto. Por ejemplo, para sustituir en las líneas desde el cursor hasta el final:

|_+_|

La ' % 'rango que usamos antes, es en realidad una forma corta de decir' 1,$ ', desde la primera hasta la última línea.

Usando un patrón en un rango

Suponga que está editando un capítulo de un libro y desea reemplazar todas las apariciones de ' gris ' con ' gris '. Pero solo en este capítulo, no en el siguiente. Sabe que solo los límites de los capítulos tienen la palabra 'Capítulo' en la primera columna. Este comando funcionará entonces:

|_+_|

Puede ver que un patrón de búsqueda se usa dos veces. El primero ' ? ^ Capítulo? 'encuentra la línea sobre la posición actual que coincide con este patrón. Por lo tanto, la ?¿patrón? rango se utiliza para buscar hacia atrás. Similar, ' / ^ Capítulo / 'se utiliza para buscar hacia adelante el comienzo del siguiente capítulo.

Para evitar confusiones con las barras, el ' = El carácter 'se usó en el comando sustituto aquí. Una barra u otro carácter también habría funcionado.

Sumar y restar

Hay un pequeño error en el comando anterior: si el título del próximo capítulo hubiera incluido 'gris', también sería reemplazado. Tal vez eso es lo que querías, pero ¿y si no lo hicieras? Entonces puede especificar un desplazamiento.

Para buscar un patrón y luego usar la línea de arriba:

|_+_|

Puede usar cualquier número en lugar del 1. Para abordar la segunda línea debajo de la coincidencia:

|_+_|

Las compensaciones también se pueden utilizar con los otros elementos de un rango. Mira este:

|_+_|

Esto especifica el rango que comienza tres líneas debajo del cursor y termina cinco líneas antes de la última línea del archivo.

Usando marcas

En lugar de averiguar los números de línea de ciertas posiciones, recordarlos y escribirlos en un rango, puede usar marcas.

Coloque las marcas como se menciona en el capítulo 3. Por ejemplo, utilice ' monte 'para marcar la parte superior de un área y' mb 'para marcar la parte inferior. Luego, puede usar este rango para especificar las líneas entre las marcas (incluidas las líneas con las marcas):

|_+_|

Modo visual y rangos

Puede seleccionar texto con el modo Visual. Si luego presiona ' : 'para iniciar un comando de dos puntos, verá esto:

|_+_|

Ahora puede escribir el comando y se aplicará al rango de líneas que se seleccionó visualmente.

Nota: Cuando use el modo Visual para seleccionar parte de una línea, o use Ctrl-V para seleccionar un bloque de texto, los comandos de dos puntos se seguirán aplicando a líneas completas.

La '< y '> son en realidad marcas, colocadas al principio y al final de la selección visual. Las marcas permanecen en su posición hasta que se realiza otra selección visual. Por lo tanto, puede utilizar el ' '< 'comando para saltar a la posición donde comenzó el área visual. Y puedes mezclar las marcas con otros elementos:

|_+_|

Esto aborda las líneas desde el final del área visual hasta el final del archivo.

Varias líneas

Cuando sepa cuántas líneas desea cambiar, puede escribir el número y luego ' : '. Por ejemplo, cuando escribe ' 5: ', conseguirás:

|_+_|

Ahora puede escribir el comando que desea usar. Utilizará el rango ' . '(línea actual) hasta' .+4 '(cuatro líneas hacia abajo). Por lo tanto, se extiende por cinco líneas.

El comando global

La ' :global 'comando es una de las características más poderosas de yo vine . Le permite encontrar una coincidencia para un patrón y ejecutar un comando allí. La forma general es:

|_+_|

Esto es similar al ' :sustituir 'comando. Pero, en lugar de reemplazar el texto coincidente con otro texto, el comando {mando} es ejecutado.

Nota: El comando ejecutado para ' :global 'debe ser uno que comience con dos puntos. Los comandos del modo normal no se pueden utilizar directamente. La :normal El comando puede hacer esto por ti.

Suponga que desea cambiar 'foobar' a 'barfoo', pero solo en comentarios de estilo C ++. Estos comentarios comienzan con ' // '. Utilice este comando:

|_+_|

Esto comienza con ' :gramo '. Que es la abreviatura de ' :global ', al igual que ' :s 'es la abreviatura de' :sustituir '. Luego el patrón, encerrado en caracteres más. Dado que el patrón que estamos buscando contiene una barra, este usa el carácter más para separar el patrón. Luego viene el comando sustituto que cambia 'foobar' a 'barfoo'.

El rango predeterminado para el comando global es el archivo completo. Por lo tanto, no se especificó ningún rango en este ejemplo. Esto es diferente de ' :sustituir ', que funciona en una línea sin rango.

El comando no es perfecto, ya que también coincide con las líneas donde '//' aparece en la mitad de una línea, y la sustitución también se llevará a cabo antes del '//'.

Como con ' :sustituir ', se puede utilizar cualquier patrón. Cuando aprenda patrones más complicados más adelante, puede usarlos aquí.

Modo de bloqueo visual

Con Ctrl-V puede iniciar la selección de un área rectangular de texto. Hay algunos comandos que hacen algo especial con el bloque de texto.

Hay algo especial en el uso de ' $ 'comando en modo de bloque visual. Cuando el último comando de movimiento utilizado fue ' $ ', todas las líneas de la selección Visual se extenderán hasta el final de la línea, también cuando la línea con el cursor sea más corta. Esto sigue siendo efectivo hasta que use un comando de movimiento que mueva el cursor horizontalmente. Por lo tanto, usando ' j 'lo mantiene' h 'lo detiene.

Insertar texto

El comando ' Yo {string} 'inserta el texto {cuerda} en cada línea, justo a la izquierda del bloque visual. Empiezas presionando Ctrl-V para ingresar al modo de bloqueo visual. Ahora mueves el cursor para definir tu bloque. A continuación, escribe I para ingresar al modo Insertar, seguido del texto a insertar. A medida que escribe, el texto aparece solo en la primera línea.

Después de presionar para finalizar la inserción, el texto se insertará mágicamente en el resto de las líneas contenidas en la selección visual. Ejemplo:

|_+_|

Mueva el cursor a la 'o' de 'uno' y presione Ctrl-V . Muévelo hacia abajo con ' 3j ' a cuatro'. Ahora tiene una selección de bloque que abarca cuatro líneas. Ahora escriba:

|_+_|

El resultado:

|_+_|

Si el bloque abarca líneas cortas que no se extienden dentro del bloque, el texto no se inserta en esa línea. Por ejemplo, haga una selección de bloque visual que incluya la palabra 'largo' en la primera y última línea de este texto y, por lo tanto, no tenga texto seleccionado en la segunda línea:

|_+_|

Ahora usa el comando ' Yo muy '. El resultado es:

|_+_|

En la línea corta no se insertó texto.

Si la cadena que inserta contiene un nueva línea , la ' I 'actúa como un comando de inserción normal y afecta solo a la primera línea del bloque.

La ' A El comando 'funciona de la misma manera, excepto que se agrega después del lado derecho del bloque. E inserta texto en una línea corta. Por lo tanto, puede elegir si desea o no agregar texto a una línea corta.

Hay un caso especial para ' A ': Seleccione un bloque Visual y luego use' $ 'para hacer que el bloque se extienda hasta el final de cada línea. Utilizando ' A 'ahora agregará el texto al final de cada línea.

Usando el mismo ejemplo de arriba, y luego escribiendo $ A XXX , obtienes este resultado:

|_+_|

Esto realmente requiere usar el ' $ 'comando. vim recuerda que se usó. Hacer la misma selección moviendo el cursor al final de la línea más larga con otros comandos de movimiento no tendrá el mismo resultado.

Cambiar texto

El bloque visual ' c 'borra el bloque y luego lo lanza al modo Insertar para permitirle escribir una cadena. La cadena se insertará en cada línea del bloque.

Comenzando con la misma selección de palabras 'largas' como arriba, luego escribiendo ' c_LONG_ ', obtienes esto:

|_+_|

Como con ' I 'la línea corta no se cambia. Además, no puede ingresar una nueva línea en el texto nuevo.

La ' C El comando 'borra el texto desde el borde izquierdo del bloque hasta el final de la línea. Luego lo coloca en el modo Insertar para que pueda escribir una cadena, que se agrega al final de cada línea.

Comenzando con el mismo texto nuevamente y escribiendo ' Nuevo texto ' usted obtiene:

|_+_|

Tenga en cuenta que, aunque solo se seleccionó la palabra 'larga', el texto posterior también se elimina. Por lo tanto, solo importa la ubicación del borde izquierdo del bloque visual.

Nuevamente, se excluyen las líneas cortas que no llegan al bloque.

Otros comandos que cambian los caracteres en el bloque:

~ cambiar caso a -> A y A -> a )
U hacer mayúsculas a -> A y A -> A )
tu hacer minúsculas a -> a y A -> a )

Llenar con un personaje

Para llenar todo el bloque con un carácter, use el ' r 'comando. Nuevamente, comenzando con el mismo texto de ejemplo anterior y luego escribiendo ' rx ':

|_+_|

Nota: Si desea incluir caracteres más allá del final de la línea en el bloque, consulte el ' virtualedit 'característica (puede escribir' : ayuda virtualedit ' en yo vine aprender más).

Cambiando

El comando ' > 'desplaza el texto seleccionado a la derecha una cantidad de cambio, insertando espacios en blanco. El punto de partida de este cambio es el borde izquierdo del bloque visual.

Con el mismo ejemplo de nuevo, ' > 'da este resultado:

|_+_|

La cantidad de cambio se especifica con el ' ancho de turno ' opción. Para cambiarlo para usar 4 espacios:

|_+_|

La ' < El comando 'elimina una cantidad de espacio en blanco en el borde izquierdo del bloque. Este comando está limitado por la cantidad de texto que hay; por lo que si hay menos de una cantidad de espacio en blanco disponible, elimina lo que puede.

Uniendo líneas

La ' J 'comando une todas las líneas seleccionadas en una sola línea. Por lo tanto, elimina los saltos de línea. En realidad, el salto de línea, el espacio en blanco inicial y el espacio en blanco final se reemplazan por un espacio. Se utilizan dos espacios después de un final de línea (que se puede cambiar con el ' joinspaces ' opción).

Usemos el ejemplo con el que estamos tan familiarizados ahora. El resultado de usar el ' J 'comando:

|_+_|

La ' J El comando 'no requiere una selección en bloque. Funciona con ' v ' y ' V 'selección exactamente de la misma manera.

Si no desea que se cambie el espacio en blanco, use el ' gJ 'comando.

Leer y escribir parte de un archivo

Cuando esté escribiendo un mensaje de correo electrónico, es posible que desee incluir otro archivo. Esto se puede hacer con el ' : leer {nombre de archivo} 'comando. El texto del archivo se coloca debajo de la línea del cursor.

Comenzando con este texto:

|_+_|

Mueva el cursor a la segunda línea y escriba:

|_+_|

El archivo llamado ' parche 'se insertará, con este resultado:

|_+_|

La ' :leer 'El comando acepta un rango. El archivo se colocará debajo del último número de línea de este rango. Por lo tanto ' : $ r parche 'agrega el archivo' parche 'al final del archivo.

¿Qué pasa si desea leer el archivo sobre la primera línea? Esto se puede hacer con la línea número cero. Esta línea no existe realmente, obtendrá un mensaje de error cuando la use con la mayoría de los comandos. Pero este comando está permitido:

|_+_|

El archivo 'parche' se colocará encima de la primera línea del archivo.

Escribir una variedad de líneas

Para escribir un rango de líneas en un archivo, el ' :escribir 'se puede utilizar el comando. Sin rango, escribe todo el archivo. Con un rango solo se escriben las líneas especificadas:

|_+_|

Esto escribe las líneas desde el cursor hasta el final del archivo en el archivo 'tempo'. Si este archivo ya existe, recibirá un mensaje de error. yo vine lo protege de sobrescribir accidentalmente un archivo existente. Si sabe lo que está haciendo y desea sobrescribir el archivo, agregue ! :

|_+_|

CUIDADO: El ! debe seguir el ' :escribir 'comando inmediatamente, sin espacios en blanco. De lo contrario, se convierte en un comando de filtro, que se explica más adelante en esta página.

Agregar a un archivo

En la primera sección de esta página se explicó cómo recopilar una serie de líneas en un registro. Se puede hacer lo mismo para recopilar líneas en un archivo. Escribe la primera línea con este comando:

|_+_|

Ahora mueva el cursor a la segunda línea que desea recopilar y escriba esto:

|_+_|

La ' >> 'dice yo vine el archivo 'colección' no debe escribirse como un archivo nuevo, pero la línea debe adjuntarse al final. Puedes repetir esto tantas veces como quieras.

Dar formato al texto

Cuando escribe texto sin formato, es bueno si la longitud de cada línea se recorta automáticamente para que quepa en la ventana. Para que esto suceda al insertar texto, establezca el ' ancho de texto ' opción:

|_+_|

Para comprobar el valor actual de ' ancho de texto ':

|_+_|

Ahora las líneas se dividirán para tomar solo hasta 72 caracteres. Pero cuando inserta texto en la mitad de una línea, o cuando elimina algunas palabras, las líneas se volverán demasiado largas o demasiado cortas. yo vine no reformatea automáticamente el texto.

Decir yo vine para formatear el párrafo actual:

|_+_|

Esto comienza con el ' gq 'comando, que es un operador. Lo que sigue es ' ap ', el objeto de texto que significa' un párrafo '. Un párrafo está separado del párrafo siguiente por una línea vacía.

Nota: Una línea en blanco, que contiene espacios en blanco, NO separa párrafos. ¡Esto es difícil de notar!

En vez de ' ap 'Podrías usar cualquier movimiento o objeto de texto. Si sus párrafos están separados correctamente, puede usar este comando para formatear todo el archivo:

|_+_|

' dias 'te lleva a la primera línea' gq 'es el operador de formato y' GRAMO 'el movimiento que salta a la última línea. En caso de que sus párrafos no estén claramente definidos, puede formatear solo las líneas que seleccione manualmente. Mueva el cursor a la primera línea que desea formatear. Comience con el comando ' gqj '. Esto formatea la línea actual y la que está debajo. Si la primera línea fue corta, se agregarán las palabras de la línea siguiente. Si es demasiado largo, las palabras se moverán a la siguiente línea. El cursor se mueve a la segunda línea. Ahora puedes usar ' . 'para repetir el comando. Siga haciendo esto hasta que esté al final del texto que desea formatear.

Cambio de caso

Tiene texto con encabezados de sección en minúsculas. Quiere poner la palabra 'sección' en mayúsculas. Haga esto con el operador 'gU'. Comience con el cursor en la primera columna:

|_+_|

La ' Gu 'operador hace exactamente lo contrario:

|_+_|

También puedes usar ' g ~ 'para intercambiar caso. Todos estos son operadores, por lo que trabajan con cualquier comando de movimiento, con objetos de texto y en modo Visual.

Para hacer que un operador trabaje en líneas, lo duplica. El operador de eliminación es ' D ', por lo tanto, para eliminar una línea que usa' dd '. Similar, ' gugu 'convierte una línea entera en minúscula. Esto se puede abreviar a ' guu '. ' gUgU 'se abrevia a' guU ' y ' g ~ g ~ ' a ' g ~~ '. Ejemplo:

|_+_|

Usando un programa externo

yo vine tiene un conjunto de comandos muy poderoso, puede hacer cualquier cosa. Pero aún puede haber algo que un comando externo pueda hacer mejor o más rápido.

El comando ' ! {movimiento} {programa} 'toma un bloque de texto y lo filtra a través de un programa externo. En otras palabras, ejecuta el comando del sistema representado por {programa}, dándole el bloque de texto representado por {movimiento} como entrada. La salida de este comando reemplaza el bloque seleccionado.

Debido a que esto resume mal si no está familiarizado con los filtros de UNIX, eche un vistazo a un ejemplo. El comando sort ordena un archivo. Si ejecuta el siguiente comando, el archivo sin clasificar input.txt se ordenará y se escribirá en output.txt. Esto funciona tanto en UNIX como en Microsoft Windows.

|_+_|

Ahora haz lo mismo en yo vine . Desea ordenar las líneas 1 a 5 de un archivo. Empiece poniendo el cursor en la línea 1. A continuación, ejecute el siguiente comando:

|_+_|

La ' ! 'dice yo vine que está realizando una operación de filtrado. La yo vine El editor espera que le siga un comando de movimiento, que indica qué parte del archivo filtrar. La ' 5G El comando 'le dice a vim que vaya a la línea 5, por lo que ahora sabe que debe filtrar las líneas 1 (la línea actual) a la 5.

Anticipándose al filtrado, el cursor cae al final de la pantalla y un! Aparece el mensaje. Ahora puede escribir el nombre del programa de filtrado, en este caso clasificar . Por lo tanto, su comando completo es el siguiente:

|_+_|

El resultado es que el programa de clasificación se ejecuta en las primeras 5 líneas. La salida del programa reemplaza estas líneas.

|_+_|

La ' !! El comando 'filtra la línea actual a través de un filtro. En Unix el fecha El comando imprime la fecha y hora actuales. ' !!fecha 'reemplaza la línea actual con la salida de fecha . Esto es útil para agregar un marca de tiempo a un archivo.

Cuando no funciona

Iniciar un shell, enviarle texto y capturar la salida requiere que yo vine sabe exactamente cómo funciona el caparazón. Cuando tenga problemas con el filtrado, verifique los valores de estas opciones:

' cáscara ' Especifica el programa que yo vine utiliza para ejecutar programas externos.
' shellcmdflag ' Argumento para pasar un comando al shell.
' cotización ' Cita que se utilizará en el comando.
' shellxquote ' Cita que se utilizará en torno al comando y la redirección.
' shelltype ' Tipo de caparazón (solo para los Amiga).
' shellslash ' Utilice barras diagonales en el comando (solo para MS-Windows y similares).
' shellredir ' Cadena utilizada para escribir la salida del comando en un archivo.

En Unix esto casi nunca es un problema, porque hay dos tipos de shells: ' sh '-gusta y ' csh '-como. yo vine comprueba el ' cáscara 'opción y establece las opciones relacionadas automáticamente, dependiendo de si ve' csh ' en algún lugar de ' cáscara '.

En MS-Windows, sin embargo, hay muchos shells diferentes y es posible que deba ajustar las opciones para que el filtrado funcione. Consulte la ayuda de las opciones para obtener más información.

Leer la salida del comando

Para leer el contenido del directorio actual en el archivo, use los siguientes comandos.

en Unix:

|_+_|

en MS Windows:

|_+_|

La salida del ' ls El comando 'o' dir 'se captura e inserta en el texto, debajo del cursor. Esto es similar a leer un archivo, excepto que el ' ! 'se usa para decir yo vine que sigue un comando.

El comando puede tener argumentos. Y se puede usar un rango para saber dónde yo vine debería poner las líneas:

|_+_|

Esto inserta la hora y fecha actuales en formato UTC en la parte superior del archivo. Si tiene un comando de fecha que acepta el ' -u ' argumento. Tenga en cuenta la diferencia con el uso de ' !!fecha ': que reemplazó una línea, mientras que' : leer! fecha 'insertará una línea.

Escribir texto en un comando

El comando de Unix WC cuenta palabras. Para contar las palabras en el archivo actual:

|_+_|

Este es el mismo comando de escritura que antes, pero en lugar de un nombre de archivo el ' ! se utiliza el carácter 'y el nombre de un comando externo. El texto escrito se pasará al comando especificado como su entrada estándar. La salida podría verse así:

|_+_|

La WC El comando no es detallado. Esta salida significa que tienes 4 líneas, 47 palabras y 249 caracteres.

Cuidado con este error:

|_+_|

Esto escribirá el archivo ' WC 'en el directorio actual, con fuerza. (¡El espacio en blanco es importante aquí!)

Redibujando la pantalla

Si el comando externo produjo un mensaje de error, es posible que la pantalla se haya estropeado. yo vine es muy eficiente y solo vuelve a dibujar aquellas partes de la pantalla que sabe que necesitan ser redibujadas. Pero no puede saber qué ha escrito otro programa. Decir yo vine para volver a dibujar la pantalla, presione Ctrl-L .

Trucos útiles

El comando sustituto se puede usar para reemplazar todas las apariciones de una palabra con otra palabra:

|_+_|

La ' % 'rango significa reemplazar en todas las líneas. La ' gramo El indicador 'al final hace que se reemplacen todas las palabras de una línea.

Esto no hará lo correcto si su archivo también contiene 'treinta y cuatro'. Sería reemplazado por 'treinta4'. Para evitar esto, use el ' < 'elemento para que coincida con el comienzo de una palabra:

|_+_|

Obviamente, esto todavía sale mal en 'catorce'. Usar ' > 'para que coincida con el final de una palabra:

|_+_|

Si está programando, es posible que desee reemplazar 'cuatro' en los comentarios, pero no en el código. Dado que esto es difícil de especificar, agregue el ' c 'para que el comando sustituto le solicite cada reemplazo:

|_+_|

Reemplazo en varios archivos

Suponga que desea reemplazar una palabra en más de un archivo. Puede editar cada archivo y escribir el comando manualmente. Es mucho más rápido utilizar la grabación y la reproducción.

Supongamos que tiene un directorio con archivos C ++, todos terminados en '.cpp'. Hay una función llamada 'GetResp' cuyo nombre desea cambiar a 'GetAnswer'.

* .cpp fuerza Comienzo yo vine , definiendo la lista de argumentos para que contenga todos los archivos C ++. Ahora estás en el primer archivo.
qq Empiece a grabar en el q Registrarse
:% s / / GetAnswer / g Realice los reemplazos en el primer archivo.
: wnext Escribe este archivo y pasa al siguiente.
q Para de grabar.
@q Ejecute el q Registrarse. Esto reproducirá la sustitución y ' : wnext '. Puede verificar que esto no produzca un mensaje de error.
[correo electrónico protegido] Ejecute el q registrarse en los archivos restantes. En el último archivo obtendrá un mensaje de error, porque ' : wnext 'no se puede mover al siguiente archivo. Esto detiene la ejecución y todo está hecho.

Nota: Al reproducir una secuencia grabada, un error detiene la ejecución. Por lo tanto, asegúrese de no recibir un mensaje de error al grabar.

Hay un inconveniente: si uno de los archivos .cpp no ​​contiene la palabra 'GetResp', obtendrá un error y el reemplazo se detendrá. Para evitar esto, agregue el ' es 'bandera al comando sustituto:

|_+_|

La ' es 'bandera dice' :sustituir 'que no encontrar una coincidencia no es un error.

En el siguiente ejemplo, cambiemos el texto 'Último, Primero' a 'Primero Último'. Digamos que tiene una lista de nombres en este formulario:

|_+_|

Quieres cambiar eso a:

|_+_|

Esto se puede hacer con un solo comando:

|_+_|

Analicemos esto en partes. Obviamente comienza con un comando sustituto. La ' % 'es el rango de línea, que representa el archivo completo. Por lo tanto, la sustitución se realiza en cada línea del archivo. Los argumentos para el comando sustituto son ' / desde / hasta / '. Las barras inclinadas separan el patrón 'desde' y la cadena 'hasta'. Esto es lo que contiene el patrón 'desde':

Toda la cadena de búsqueda es: |_+_|
La primera parte entre ( ) coincide con 'Último': |_+_|
haciendo coincidir cualquier cosa menos una coma: |_+_|
... cualquier número de veces: |_+_|
... luego haciendo coincidir un ' , 'literalmente: |_+_|
La segunda parte entre ( ) coincide con 'Primero': |_+_|
haciendo coincidir cualquier carácter: |_+_|
... cualquier número de veces: |_+_|

En la parte 'a' tenemos ' 2 ' y ' 1 '. Estos se denominan referencias inversas. Se refieren al texto que coincide con el ' ( ) 'partes en el patrón. ' 2 'se refiere al texto que coincide con el segundo' ( ) ', que es el' Nombre '. ' 1 'se refiere al primero' ( ) ', que es el' Apellido '.

Puede utilizar hasta nueve referencias inversas en la parte 'a' de un comando sustituto. ' 'representa todo el patrón emparejado.

Ordenar una lista

en un Makefile a menudo tiene una lista de archivos. Por ejemplo:

|_+_|

Para ordenar esta lista, filtre el texto a través de la clasificar mando:

|_+_| |_+_| |_+_|

Esto va a la primera línea, donde 'OBJS' es lo primero en la línea. Luego va una línea hacia abajo y filtra las líneas hasta la siguiente línea vacía. También puede seleccionar las líneas en modo Visual y luego usar ' !clasificar '. Eso es más fácil de escribir, pero más trabajo cuando hay muchas líneas.

El resultado es este:

|_+_|

Observe que se usa una barra invertida al final de cada línea para indicar que la línea continúa. Después de clasificar, ¡esto está mal! La línea 'backup.o' que estaba al final no tenía barra invertida. Ahora que se ordena a otro lugar, debe tener una barra invertida.

La solución más simple es agregar la barra invertida con ' A '. Puede mantener la barra invertida en la última línea, si se asegura de que una línea vacía venga después. De esa forma no volverás a tener este problema.

Orden de línea inverso

La :global El comando se puede combinar con el :moverse comando para mover todas las líneas antes de la primera línea, lo que da como resultado un archivo invertido. El comando es:

|_+_|

Abreviado:

|_+_|

La ' ^ 'expresión regular coincide con el comienzo de la línea (incluso si la línea está en blanco). La :moverse El comando mueve la línea coincidente después de la mítica línea cero, por lo que la línea coincidente actual se convierte en la primera línea del archivo. Como el :global el comando no se confunde con la numeración de línea cambiante, :global procede a hacer coincidir todas las líneas restantes del archivo y coloca cada una como la primera.

Esto también funciona en una variedad de líneas. Primero muévase arriba de la primera línea y márquela con 'mt'. Luego mueva el cursor a la última línea del rango y escriba:

|_+_|

Contar palabras

A veces hay que escribir un texto con un número máximo de palabras. yo vine puede contar las palabras por usted.

Cuando todo el archivo es el lugar en el que desea contar las palabras, use este comando:

|_+_|

No escriba un espacio después del gramo , esto solo se usa aquí para facilitar la lectura del comando.

La salida se ve así:

|_+_|

Puede ver en qué palabra está (748) y el número total de palabras en el archivo (774).

Cuando el texto es solo una parte de un archivo, puede ir al principio del texto y escribir ' g Ctrl-G ', vaya al final del texto, escriba' g Ctrl-G 'de nuevo, y luego usa tu cerebro para calcular la diferencia en la posición de la palabra. Es un buen ejercicio, pero hay una forma más sencilla. Con el modo Visual, seleccione el texto en el que desea contar las palabras. Luego escriba g Ctrl-G . El resultado:

|_+_|

Encuentra una página de manual

Mientras edita un script de shell o un programa C, está utilizando un comando o función para el que desea encontrar la página de manual (esto se aplica a Linux, no a MS Windows). Primero usemos una forma simple: mueva el cursor a la palabra en la que desea encontrar ayuda y presione A .

yo vine ejecutará el externo hombre programa en la palabra. Si se encuentra la página de manual, se muestra. Esto usa el buscapersonas normal para desplazarse por el texto (principalmente el más programa). Cuando llegues al final presionando te llevará de vuelta a yo vine .

Una desventaja es que no puede ver la página de manual y el texto en el que está trabajando al mismo tiempo. Hay un truco para hacer que la página de manual aparezca en una ventana de vim. Primero, cargue el complemento man filetype:

|_+_|

Coloque este comando en su archivo vimrc si tiene la intención de hacerlo con frecuencia. Ahora puedes usar el ' :Hombre 'comando para abrir una ventana en una página de manual:

|_+_|

Puede desplazarse y el texto se resalta, lo que le permite encontrar la ayuda que estaba buscando. Usar Ctrl-W w para saltar a la ventana con el texto en el que estaba trabajando.

Para encontrar una página de manual en una sección específica, coloque primero el número de sección. Por ejemplo, para buscar en la sección 3 ' echo ':

|_+_|

Para saltar a otra página de manual, que está en el texto con la forma típica 'palabra (1)', presione Control-] en eso. Más ' :Hombre Los comandos 'usarán la misma ventana.

Para mostrar una página de manual para la palabra debajo del cursor, use el comando A .

(Si redefinió el , utilícelo en lugar de la barra invertida). Por ejemplo, desea saber el valor de retorno de ' strstr () 'mientras edita esta línea:

|_+_|

Mueva el cursor a algún lugar en ' strstr 'y escriba' A '. Se abrirá una ventana para mostrar la página de manual de strstr () .

Recortar espacios en blanco

Algunas personas encuentran que los espacios y las pestañas al final de una línea son inútiles, derrochadores y feos. Para eliminar los espacios en blanco al final de cada línea, ejecute el siguiente comando:

|_+_|

Se usa el rango de línea '%', por lo que esto funciona en todo el archivo. El patrón que el ' :sustituir 'comando coincide con is' s + $ '. Esto busca caracteres de espacio en blanco ( s), 1 o más de ellos ( +), antes del final de línea ($).

La parte 'a' del comando sustituto está vacía: '//'. Por lo tanto, reemplaza con nada, eliminando efectivamente el espacio en blanco coincidente.

Otro desperdicio de espacios es colocarlos antes de una pestaña. A menudo, estos se pueden eliminar sin cambiar la cantidad de espacio en blanco. ¡Pero no siempre! Por lo tanto, lo mejor es hacerlo manualmente. Utilice este comando de búsqueda: ' / '. No puede verlo, pero hay un espacio antes de una pestaña en este comando. Así es ' / '. Ahora usa ' x 'para eliminar el espacio y comprobar que la cantidad de espacio en blanco no cambia. Es posible que deba insertar una pestaña si cambia. Tipo ' norte 'para encontrar la siguiente coincidencia. Repita esto hasta que no se encuentren más coincidencias.

Encuentra dónde se usa una palabra

Si es un usuario de UNIX, puede utilizar una combinación de yo vine y el comando grep para editar todos los archivos que contienen una palabra determinada. Esto es extremadamente útil si está trabajando en un programa y desea ver o editar todos los archivos que contienen una variable específica.

Por ejemplo, suponga que desea editar todos los archivos de programa C que contienen la palabra 'frame_counter'. Para hacer esto, usa el comando:

|_+_|

Veamos este comando en detalle. El comando grep busca en un conjunto de archivos una palabra determinada. Porque el -l se especifica el argumento, el comando solo listará los archivos que contienen la palabra y no imprimirá las líneas coincidentes. La palabra que está buscando es 'frame_counter'. En realidad, puede ser cualquier expresión regular. Nota: Lo que utiliza grep para las expresiones regulares no es exactamente lo mismo que yo vine usos.

El comando completo está entre comillas invertidas (' ' '). Esto le dice al shell de UNIX que ejecute este comando y finja que los resultados se escribieron en la línea de comandos. Entonces, lo que sucede es que el comando grep se ejecuta y produce una lista de archivos, estos archivos se colocan en el yo vine línea de comando. Esto resulta en yo vine editar la lista de archivos que es la salida de sujeción . Luego puede usar comandos como ' :Siguiente ' y ' :primero 'para navegar por los archivos.

Encontrar cada línea

El comando anterior solo encuentra los archivos en los que se encuentra la palabra. Aún tienes que encontrar la palabra dentro de los archivos.

yo vine tiene un comando incorporado que puede usar para buscar una cadena determinada en un conjunto de archivos. Si desea encontrar todas las apariciones de 'error_string' en todos los archivos de programa de C, por ejemplo, ingrese el siguiente comando:

|_+_|

Esto causa yo vine para buscar la cadena 'error_string' en todos los archivos especificados (* .c). El editor ahora abrirá el primer archivo donde se encuentra una coincidencia y colocará el cursor en la primera línea coincidente. Para ir a la siguiente línea coincidente (sin importar en qué archivo se encuentre), use el ' : cnext 'comando. Para ir al partido anterior, use el ' : cprev 'comando. Usar ' : clist 'para ver todos los partidos y dónde están.

La ' :sujeción El comando 'usa los comandos externos grep (en Unix) o findtr (en Windows). Puede cambiar esto configurando la opción ' grepprg '.

Abreviaturas de la línea de comandos

Algunos de los ' : Los comandos son realmente largos. Ya mencionamos que ' :sustituir 'se puede abreviar como' :s '. Este es un mecanismo genérico, todos ' : 'los comandos se pueden abreviar.

¿Qué tan corto puede ser un comando? Hay 26 letras y muchos más comandos. Por ejemplo, ' :colocar 'también comienza con' :s ', pero ' :s 'no inicia un' :colocar 'comando. En lugar de ' :colocar 'se puede abreviar como' :se '.

Cuando la forma más corta de un comando se puede usar para dos comandos, representa solo uno de ellos. No hay lógica detrás de cuál, tienes que aprenderlos. En los archivos de ayuda se menciona la forma más corta que funciona. Por ejemplo:

|_+_|

Esto significa que la forma más corta de ' :sustituir ' es ' :s '. Los siguientes caracteres son opcionales. Por lo tanto ' :su ' y ' :sub ' Además trabajo.

En el manual del usuario usaremos el nombre completo del comando o una versión corta que aún se puede leer. Por ejemplo, ' :función 'se puede abreviar como' : fu '. Pero como la mayoría de la gente no entiende qué significa eso, usaremos ' :divertida '. vim no tiene un ' :gracioso 'comando, de lo contrario' :divertida 'también sería confuso.

Se recomienda que en yo vine scripts, escribe el nombre completo del comando. Eso facilita la lectura cuando realice cambios posteriores. Excepto por algunos comandos de uso frecuente como ' :en ' (' :escribir ') y ' : r ' (' :leer ').

Uno particularmente confuso es ' :final ', que podría representar' :terminara si ', ' : end while ' o ' : función final '. Por lo tanto, utilice siempre el nombre completo.

Nombres cortos de opciones

En el manual del usuario se utiliza la versión larga de los nombres de las opciones. Muchas opciones también tienen un nombre corto. A diferencia de ' : ', solo hay un nombre corto que funciona. Por ejemplo, el nombre corto de 'autoindent' es 'ai'. Por lo tanto, estos dos comandos hacen lo mismo:

|_+_|

Finalización de la línea de comandos

Este es uno de esos yo vine características que, por sí mismas, son una razón para cambiar de Nosotros a yo vine . Una vez que haya usado esto, no puede prescindir.

Suponga que tiene un directorio que contiene estos archivos:

|_+_|

Para editar el último, usa el comando:

|_+_|

Es fácil escribir esto mal. Una forma mucho más rápida es:

|_+_|

Lo que resultará en el mismo comando. ¿Qué sucedió? La La tecla completa la palabra antes del cursor. En este caso ' b '. yo vine busca en el directorio y encuentra solo un archivo que comienza con un ' b '. Ese debe ser el que estás buscando, así yo vine completa el nombre del archivo por usted.

Ahora escriba:

|_+_|

yo vine sonará y le dará:

|_+_|

El pitido significa que yo vine ha encontrado más de una coincidencia. Luego usa la primera coincidencia que encontró (alfabéticamente). Si presiona de nuevo, obtienes:

|_+_|

Por tanto, si la primera no le da el archivo que estaba buscando, presiónelo nuevamente. Si hay más coincidencias, las verá todas, una a la vez.

Si presiona en la última entrada coincidente, volverá a lo que escribió por primera vez:

|_+_|

Entonces empieza todo de nuevo. Por lo tanto yo vine recorre la lista de coincidencias. Usar Ctrl-P para recorrer la lista en la otra dirección:

|_+_|

Contexto de comando

Cuando escribes ' : establecer yo ' en vez de ' : editar yo 'y presione usted obtiene:

|_+_|

Oye, ¿por qué no conseguiste? : establecer info.txt '? Eso es porque yo vine tiene terminación sensible al contexto. El tipo de palabras que buscará vim depende del comando anterior. El comando vim sabe que no puede usar un nombre de archivo justo después de un ' :colocar ', pero puede usar un nombre de opción.

Nuevamente, si repite escribiendo el , yo vine recorrerá todos los partidos. Hay bastantes, es mejor escribir más caracteres primero:

|_+_|

Da:

|_+_|

Ahora escribe ' = 'y presione :

|_+_|

Lo que sucede aquí es que vim inserta el valor anterior de la opción. Ahora puedes editarlo.

Que se completa con qué es yo vine espera en ese lugar. Pruébelo para ver cómo funciona. En algunas situaciones, no obtendrá lo que desea. Eso es porque yo vine no sabe lo que quiere, o porque la finalización no se implementó para esa situación. En ese caso obtendrá un insertado (mostrado como ^ Yo ).

Ver coincidencias de la lista

Cuando hay muchas coincidencias, le gustaría ver una descripción general. Haz esto presionando Ctrl-D . Por ejemplo, presionando Ctrl-D después:

|_+_|

resulta en:

|_+_|

yo vine enumera las coincidencias y luego vuelve con el texto que escribió. Ahora puede consultar la lista del artículo que deseaba. Si no está allí, puede usar para corregir la palabra. Si hay muchas coincidencias, escriba algunos caracteres más antes de presionar para completar el resto.

Si ha mirado con atención, habrá notado que 'incsearch' no comienza con 'is'. En este caso, 'es' representa el nombre corto de 'incsearch'. Muchas opciones tienen un nombre corto y uno largo. yo vine es lo suficientemente inteligente como para saber que es posible que haya deseado expandir el nombre corto de la opción en el nombre largo.

Hay más

La Ctrl-L El comando completa la palabra hasta la cadena más larga sin ambigüedades. Si escribe ' : editar yo 'y hay archivos' info.txt 'e' info_backup.txt 'que obtendrá' :editar información '.

La ' moda salvaje 'se puede utilizar para cambiar la forma en que funciona la finalización. La ' wildmenu 'se puede usar para obtener una lista de coincidencias similar a un menú. Utilizar el ' sufijos 'opción para especificar archivos que son menos importantes y aparecen al final de la lista de archivos. La ' salvaje La opción 'especifica archivos que no se enumeran en absoluto.

Ejemplos de

|_+_|

Lanza yo vine , colocándolo en modo normal con un nuevo documento.

|_+_|

Lanza yo vine y abre el archivo document.txt , o un documento en blanco si document.txt no existe ya.

ed - Un sencillo editor de texto.
emacs - Un editor de texto altamente extensible.
ex - Modo editor de línea del editor de texto vi.
pico - Un sencillo editor de texto.