Ayuda de vim
versión disponible en : en it ru zh ja de nl fr
fecha de creación : 20220618- fecha de actualización : 20220618- fecha de generación : 20240612_171233
vim vim_25_presentation_by_bram_moolenaar_on_2016_november_2 mastering_the_vim_language
Acabas de entrar en el editor vim.
Puede utilizar las teclas de flecha (flechas y paginación) para desplazarse por este texto.
Lo más importante que hay que saber que hace vim (vi) único es el hecho de que vim (vi) es un editor multimodo.
La principal caracterÃstica del editor vim (vi) es operar principalmente en el . mode commande vi Podemos decir que hay dos tipos de editores los que funcionan por defecto y principalmente en modo de edición (escribes en el teclado y se escribe el texto) y los que operan por defecto y principalmente en modo comando (escribes en el teclado y hace cosas).
En el primero están todos los editores excepto vi y vim (emacs, ultraedit, notepad, ...cómo empezar con vim) en el segundo hay vi y vim.
vim es la extensión histórica, el desarrollo del vi original del sistema unix que no ha evolucionado sino por vim.
Los modos de vim son:
En vim el modo de entrada es idéntico al de un editor como el bloc de notas.
A este modo se accede desde el . mode commande vi introduciendo los siguientes comandos:
5.Modo de lÃnea de comandos vi
Estos son en realidad los comandos del editor "teletype", el precursor de vi, el editor ^ed"..
Cuando la entrada del ordenador pudo verse en una pantalla en lugar de en un teletipo, "ed" evolucionó a "vi". (que es una abreviatura de "visual").
Esto significa que "vi" contiene los genes de "ed".
ed por cierto dio lugar al comando "sed" que podrÃa significar "stream ed" por ejemplo.
A este modo se accede introduciendo el carácter ".:" de . mode commande vi .
En vim, es posible recuperar los comandos ya introducidos navegando con las flechas arriba y abajo.
Incluso puede introducir el principio de un comando y luego utilizar las flechas para seleccionar sólo los comandos correspondientes al prefijo introducido.
pedir note_es acción
:b nn hacer que el búfer sea efectivo (archivo) identificado como "nn", para la lista de buffers ver comando :ls
:e archivo edita el archivo cuya ruta se introduce :g/expr/ global : selecciona las lÃneas que contienen la expresión regular "exp" y : :g/expr/l - enumera las lÃneas :g/expr/d - destruye las lÃneas :g/expr/s/// - aplica el comando de sustitución "s" a las lÃneas seleccionadas :ls enumera los buffers ya editados durante la sesión y muestra su número (ver pedido :b nn) :n next - emite el siguiente búfer si se han solicitado varios archivos :q dejar el editor ":q!" forzar la salida sin guardar :r rewind - vuelve al primer buffer solicitado al abrir vi o al ordenar ":n archivo" :s . substitution de chaine :w guarda el archivo actual ":w!" forzar la reescritura en caso de aviso :x eXit guarda el buffer actual y sale de vi :map_es crea un nuevo . mode commande vi mediante la combinación de comandos de este modo ! . shell vi permite la interacción con el entorno externo del programa vi, ofrece posibilidades ilimitadas / o :/ búsqueda de un . expression régulière (los objetivos se muestran en amarillo) el comando "n" permite navegar por la búsqueda
especÃfico
vim :gf go file,abre el archivo cuya ruta está bajo el cursor :sp split ,divide el espacio de trabajo en dos para abrir un segundo buffer switch por ctrl-W w :tabnew se ha añadido una pestaña de espacio de trabajo
5.1.Modo de lÃnea de comandos vi
El uso del carácter "!" en diferentes contextos le permite emitir comandos del sistema.
En la lÃnea de comandos de vi, por ejemplo, escriba ":!dir " para abrir un shell y ejecutar el comando dir.
o en . mode commande vi , "!" seguido de una orden de movimiento (ne
si sólo ENTER) muestra un aviso en el que puede introducir un comando
sistema. El búfer seleccionado por el movimiento se envÃa a la entrada estándar del (stdin)
y la salida estándar del (stdout) se recupera y coloca el resultado en el buffer delimitado
por el traslado (el antiguo buffer se pierde).
AsÃ, podemos lanzar una consulta SQL con el comando isql, transformar un texto mediante un script perl,
escribir programas en C para crear nuevos comandos de edición, ... Las posibilidades son infinitas.
la orden :map le permite crear un nuevo comando.
Por ejemplo, el comando :"map ² j.
" crea el comando "²" que localiza el último comando en la siguiente lÃnea.
5.3.1.Ejemplo de mapa de comandos analogÃa vim mq
No puedo evitar hacer una divertida analogÃa con el <mécanique_quantique_es_nweb>(fr.wikipedia.org/wiki/M%C30X0P+09canique_quantique) y el operador hamiltoniano H
responsable de la evolución en el tiempo. Este operador puede verse como la combinación de los operadores de creación y destrucción de estados energéticos (o partÃculas en la teorÃa del campo cuántico).
Las energÃas suelen ser H = energÃa potencial energÃa cinética = a² b² y con la factorización compleja o i²=-1 H = (a ib)(a-ib) = C * D, siendo C y D los operadores de creación y destrucción.
Si consideramos una lÃnea de texto en vim y el comando "x" para borrar un carácter (destrucción),
el comando de inserción del contenido del buffer por defecto "p" (creación)
y su combinación "xp" en un comando ":mapa
habremos creado el nuevo comando ": evolución.
Pero aquà el espacio se simboliza con una lÃnea de subrayado y, por ejemplo, el carácter o como partÃcula :
aplicando el comando ".
También puedes crear el operador inverso mediante ":mapa
__________________________________o___________________________________________________________________
- ejecutar las macros en el "o" (la partÃcula cuántica :-mecánica cuántica nweb)
- para compilar las macros sin copiarlas en la lÃnea de comandos puede utilizar la macro [xlm_es] colocándose en la lÃnea de la macro.
mapa
mapa
- Una trayectoria puede ser definida por
mapa #H
- Una trayectoria cÃclica (oscilación) mediante la macro recursiva:
mapa #S #H#S
- Advertencia: esta macro resursiva sólo puede interrumpirse con CTRL-C
observamos que al detener la macro puede salir del sistema con la partÃcula destruida, el "o" ha desaparecido (ha vuelto al vacÃo cuántico) o creado, el "o" está presente pero probablemente en otro lugar que en su posición original.
Esto nos dice que cuando se interrumpe una macro se hace sobre un comando "atómico" y no sobre una macro llamada por una macro.
Creo que este ejemplo muestra muy bien la dinámica de las macros.
En Vim hay otra forma de grabar una secuencia de comandos.
Se trata del comando "q", que permite grabar la secuencia de comandos que luego se escribirán en el teclado (introducir otro "q" detiene el registro) y el comando "@" que permite ejecutar estos comandos.
Los comandos se almacenan en búferes cuyo nombre es un carácter alfanumérico que debe especificarse junto con los comandos "q" y "@"..
Por ejemplo q03dwj almacena en el buffer 0 el comando 3dwjbbb que borra 3 palabras y pasa a la siguiente lÃnea retrocediendo 3 palabras mientras se ejecuta esta secuencia.
el comando @0 repite la secuencia.
El comando ":s/chaine1/chaine2/" de sustitución de cadena1 por cadena2 ofrece posibilidades muy potentes: Si desea realizar cambios en el carácter "/" debe utilizar ^\\/" para especificar este carácter o utilizar otro carácter delimitador de cadena ":s.
chaine1.
canal2.
"
:s/toto/titi/ sustituir "toto" por "titi" en la lÃnea
:s/toto/titi/g sustituir todos los "toto" por "titi" en la lÃnea :1,$/toto/titi/g sustituir todos los "toto" por "titi" en todo el archivo :., 10/toto/titi/g sustituye todos los "toto" por "titi" a partir de la lÃnea actual en diez lÃneas :g/tata/s/to/titi/g sustituir todos los "toto" por "titi" en todas las lÃneas que contengan la cadena "tata" :'a,'bg/tata/s/to/titi/g sustituye todos los "toto" por "titi" en todas las lÃneas que contienen la cadena "tata" entre las lÃneas almacenadas por los Ãndices "a" y "b"
5.4.1.. expression régulière : expresión regular
Las expresiones regulares pueden utilizarse para especificar cadenas de búsqueda complejas.
El carácter "." se utiliza para especificar cualquier carácter.
El carácter "*" se utiliza para especificar cualquier secuencia de caracteres.
El carácter ""^ se utiliza para especificar el comienzo de la lÃnea
El carácter "$" se utiliza para especificar el final de la lÃnea
Un bloque "" se utiliza para especificar un posible conjunto de caracteres en la expresión regular.
Por ejemplo :
Por ejemplo "toto.*titi" se refiere a la porción de lÃneas que comienzan con toto y terminan con titi.
Por ejemplo ".*esto.*titi.*" denota las lÃneas que contienen tanto toto como titi en este orden.
Por ejemplo "^toto.*titi$" denota las lÃneas que comienzan con toto y terminan con titi.
|" (barra diagonal inversa-pipe)
asà que "toto.|titi.*toto" permite por ejemplo en un comando g//s//
realizar el cambio sólo en las lÃneas correspondientes al criterio.
Estamos casi al nivel de un solicitante en modo texto.
Es posible dividir una lÃnea o una parte de una lÃnea en subcampos en una expresión regular
en el comando ":s".
Ejemplo: cadena de objetivos: " Hermosa marquesa tus hermosos ojos me hacen morir de amor" (B.)(v.)()()()" que se llama \\1 \\2 \\3 \\4 \\5
El comando ":(B.)(v.)()()()/\\5 \\4\\3/" con todos las permutaciones de subcampos generan formas menos bellas de prosa de primera frase: de amor tus hermosos ojos muriendo me hacen Belle marquise
Es este modo el que explica el poder de vim.
Cada tecla es un comando.
Hay grandes tipos de comandos:
Se pueden combinar comandos de diferentes tipos: cambiar*mover, por ejemplo :
Los comandos de movimiento, ver tipo "d" en la lista . vimaz puede combinarse con otras órdenes de modificación para formar una nueva orden de modificación.
Las teclas de flecha son, por supuesto, operativas y funcionan junto con las teclas SHIFT, CTRL.
Los comandos de modificación, ver tipo "m" en la lista . vimaz
6.3.Orden de investigación vi
Comandos de búsqueda, ver tipo "r" en la lista . vimaz
6.4.Comando de gestión del buffer vi
Los comandos del buffer, ver tipo "g" en la lista . vimaz
6.5.. vimaz :Vine de la A a la Z
El alfabeto de vim.
Cuando estás en . mode commande vi cada letra es una orden :
columna descripción
. lettre
la carta de pedido. Puede ser una sola letra, duplicada, seguida de otra letra, seguida del tipo de orden
Doble letra mencionada por ² que no es utilizada por vim Letra seguida de cualquier otra letra, este último caso se indica con la presencia de un "subrayado", por ejemplo, f_ Seguido del tipo de comando "d" para el desplazamiento por ejemplo, en este caso todos los comandos de desplazamiento son operativos . commande type
tipo de pedido : d Mover, m Editar, r Buscar, g Gestión del buffer . note vim
utilidad o poder del orden mencionado por una serie de más ... o menos . mnemo
origen del uso de la letra para el comando, medios mnemotécnicos, en inglés por supuesto
. lettre . type cmd . mnemo . note vim acción
. caractère non alphabétique vi
. m repite la última orden de cambio ~ m mayúsculas-minúsculas inversas. Para usar con "g" : g~d ^ d va al principio de la lÃnea $ d va al final de la lÃnea * r vim busca la palabra bajo el cursor : todos los objetivos son de color amarillo . Ver aquà g* '_ d "cote" seguido de una letra mueve el cursor a la lÃnea almacenada por esa letra ver m_ "_yd g "doble dimensión" seguido de una letra, seguido de "y" yank seguido de un comando move almacena el texto a mover en un buffer nombrado por esa letra "ayfo g ejemplo: "afo almacena en el buffer "a" desde el carácter actual hasta el siguiente "o" en la lÃnea actual "y g "y almacena la lÃnea actual en el buffer b "by'b g "b'b almacena en el buffer b desde la lÃnea actual hasta la lÃnea almacenada por el Ãndice b . caractère alphabétique vi
a m adjuntar añade texto después del carácter actual y cambia a . mode de saisie vi A md Añada añade texto al final de una lÃnea cambia a . mode de saisie vi b d volver mueve el cursor hacia atrás una palabra, si . majuscule las palabras sólo están separadas por espacios en blanco B d Volver Ãdem "b" si . majuscule palabras definidas por lo que están separadas por espacios en blanco y en blanco c_ m cambiar - "c" seguido de un . commande de déplacement vi cambia el texto desde el carácter actual hasta el final del movimiento C m Cambiar - cambia el texto desde el carácter actual hasta el final de la lÃnea dd m borrar "d" seguido de un . commande de déplacement vi borra el texto desde el carácter actual hasta el final del movimiento d² m borrar "d" duplicado borra la lÃnea actual D m borrar borra el texto desde el carácter actual hasta el final de la lÃnea e d Finalizar mueve el cursor al final de la palabra actual E d Finalizar mueve el cursor al final del ".. mot large " actual f_ r encontrar "f" seguido de un carácter mueve el cursor hacia abajo en la lÃnea hasta el carácter si existe F_ r encontrar "F" igual que "f" pero se mueve al principio de la lÃnea g² d Ir a mueve el cursor al principio del archivo G d Ir a mueve el cursor al final del archivo g* r global (vim) igual que "*" pero no se busca la palabra sino la cadena (si aparece en una palabra) g~d m global invierte las letras mayúsculas y minúsculas hasta el movimiento gf d ir al archivo edita el archivo cuya ruta está bajo el cursor i m insertar inserta los caracteres escritos posteriormente antes de que el carácter actual cambie a . mode de saisie vi I md Insertar insertar los caracteres escritos posteriormente al principio de la lÃnea pasa a . mode de saisie vi J m únase a concatena la lÃnea actual con la siguiente (fusión de dos lÃneas) se inserta un espacio en blanco entre las dos lÃneas teclado de desplazamiento : hjkl jk:arriba abajo , hl izquierda derecha (que se utilizará en la macro en lugar de las flechas) teclado original sin trackpad . touches de déplacement vi
h d flecha izquierda j d flecha hacia arriba k d flecha hacia abajo l d flecha derecha m_ d memorizar "m" seguido de una letra memoriza la siguiente lÃnea con esta letra como Ãndice, la recuperación se hace con el carácter "cote": ' o m Abrir abre o inserta una lÃnea después de la lÃnea actual O m Abrir abre o inserta una lÃnea ANTES de la lÃnea actual p m poner inserta el contenido del búfer actual r_ m sustituir reemplaza el carácter actual permanece en . mode commande vi R m Sustituir reemplaza el texto de la posición actual cambia a . mode de saisie vi s m sustituir reemplaza el texto de la posición actual cambia a . mode de saisie vi S m Sustituto - sustituye la lÃnea actual por los caracteres introducidos posteriormente pasa a . mode de saisie vi t_ r a "t" seguido de un carácter mueve el cursor a la lÃnea inmediatamente anterior al carácter si existe T_ r A "T" igual que "t" pero se mueve al principio de la lÃnea (utilidad en combinación con un control de doble clasificación u m deshacer "undo" deshace la última modificación. undo (deshacer) deshace todos los cambios desde el último cambio de archivo editado . "redo" ctrl-r es la inversa de deshacer v g (vim) entra en el modo de selección de texto (visión lineal del texto) ctrl-v en modo de selección de bloques rectangulares (vista superficial del texto) w d Finalizar mueve el cursor al final de la palabra actual W d Finalizar mueve el cursor al final del ".. mot large " actual x m borra la letra yd g yank "y" seguido de un . commande de déplacement vi almacena en el búfer por defecto el texto afectado por el movimiento, utilizado junto con los búferes denominados "_ z² "z." o "zz^ centra la ventana en la lÃnea actual z. ENTER
sitúa la lÃnea actual en la parte superior de la ventana z- posiciona la lÃnea actual en la parte inferior de la ventana . commandes utilisant la touche CTRL
CTRL-R "redo" inverse de "u" "undo" CTRL-A incrementa el número bajo el cursor CTRL-X disminuye el número bajo el cursor
Cómo desplazarse fácilmente por un expediente en el que se está trabajando.
una palabra definida por lo que está separada sólo por espacios en blanco y en blanco.
ejemplo: ^desde el lunes por la mañana" es una sola palabra ^abreviada"
En vi la alteración de una tecla por el turno (mayúsculas) altera el comando correspondiente a la minúscula.
La alteración puede ser de varios tipos pero el orden resultante se acerca al inicial.
Posible modificación: