significado - Guía de supervivencia de Vim/vi
vim significado (30)
¿Cuáles son los comandos vim esenciales? ¿Qué necesita saber un nuevo usuario para evitar meterse en problemas? Un comando por comentario, por favor.
Me gusta la Guía de referencia Vim 5.6 , de Bram Moolenaar y Oleg Raisky.
Puede imprimirlo directamente en forma de folleto, fácil de leer, siempre lo tengo por ahí.
Es un poco viejo, pero ¿qué son 8 años en la vida de Vi?
Muchos de los grandes comandos se enumeran en la Wiki de consejos de Vim .
Aunque se trata de una cuestión de preferencia personal, he descubierto que una de las cosas esenciales que hay que hacer es reasignar Esc a otra cosa.
Me resulta muy incómodo alcanzar la tecla Esc para salir del modo insertar, pero lo bonito de Vim es que permite la asignación de teclas.
Actualmente estoy usando la siguiente asignación usando Control + S
:
inoremap <C-s> <Esc>:w<CR>
Esto tiene la ventaja de ser una asignación de teclas que ya he asignado a la memoria y tiene el valor agregado de guardar mi trabajo cada vez que voy al modo normal. Sí, sé que es una locura, pero estaría presionando el comando guardar con frecuencia de todos modos. Es como un mal hábito, ya sabes.
Antes que nada, necesitas saber cómo cerrar vi: ctrl-c: q!
El resto se puede encontrar desde vimtutor. Inicie vimtutor escribiendo vimtutor en su línea de comando
Cómo cambiar de modo (i para ingresar al modo de inserción (una de muchas maneras), esc para salir del modo de inserción, dos puntos para modo de comando) y cómo guardar y salir. (: wq)
Como ya han mencionado otras personas, vimtutor es el camino a seguir. Te enseñará todo lo que necesitas saber en vim. El único consejo general que le daría es mantenerse lo más alejado posible del modo de inserción. Hay una potencia enorme en los otros modos, solo se necesita un poco de práctica para acostumbrarse.
Consulte http://www.rayninfo.co.uk/vimtips.html para obtener una gran colección de consejos de Vim, desde los básicos, no se puede vivir sin hasta cosas muy sofisticadas que nunca se le habría ocurrido intentar.
Este reciente tutorial de Vim de IBM es bastante bueno
Llevo años guardando una Tarjeta de referencia Vi . Es muy útil.
Me gusta este QRC!
http://www.fsckin.com/wp-content/uploads/2007/10/vi-vim_cheat_sheet.gif
NB vi no es vim! vim se está convirtiendo rápidamente en los emacs del nuevo siglo. nvi es probablemente lo más parecido a la vi original. Aquí hay una buena pista: "xp" intercambiará dos personajes (pruébalo).
Otro comando útil es buscar algo: / eg / Mon buscará (y en el caso de vim highlight) cualquier ocurrencia de Mon en su archivo.
Si está utilizando vim, el comando ''u'' (en modo comando) Deshace el último comando que escribió. Puede usar este comando varias veces para deshacer los errores que haya cometido antes de guardar el archivo.
También es bueno ejecutar el vimtutor al aprender estos comandos
Uno de mis comandos favoritos es% G, que lleva directamente al final de un archivo. Especialmente útil en archivos de registro.
Use el comando ''J'' (J para Unirse; mayúsculas) para eliminar la nueva línea al final de una línea. De lo contrario, te parecerá complicado.
alias vi nedit :)
todo el humor a un lado ... para vi CUANDO NO usas nedit ...
-
i
(cambiar al modo insertar) -
a
(agregar = mover al final de la línea y cambiar al modo insertar) -
esc
(modo de inserción de salida) -
dd
borra una línea -
x
eliminar un personaje -
:wq
(guardar y salir) -
/
iniciar una búsqueda -
n
encontrar Siguiente -
?
buscar hacia atrás ... -
yy
(yank) copia una línea al buffer -
pp
(pegar) pegarlo aquí -
r
(reemplazar un personaje) -
<N> <command>
esta es una característica clara pero agravante que te permite escribir dígitos y luego un comando para -
5dd
eliminará 5 líneas
pero en este momento también podrías - man vi
y refrescar tu memoria
Si bien hay MUCHO más, cambié de Vi a nedit hace varios años, y creo que tiene más funciones que puedo usar de forma regular más fácilmente. Edición por pestañas, barra de búsqueda incremental, selección de columna, copiar y pegar. ordenar las líneas seleccionadas, buscar y destruir dentro de la selección, doc completo o todos los documentos abiertos. menús desplegables ... y admite resaltado de sintaxis para todos los idiomas que uso ... (con archivos de patrones que he usado durante mucho tiempo) a lo largo de los años. VIM muchos ahora son equivalentes, pero tiene que introducir una característica que Nedit no tiene y una forma fácil de migrar mis archivos de patrones antes de volver a cambiar.
i - modo de inserción (escape para salir) dd - eliminar desplazamiento de línea-y - ''Yank'' (copia) línea p - ''Poner'' (pega) línea (s) shift-v - Modo visual utilizado para seleccionar el texto (intentándolo) ''este texto y'' ponerlo ''en alguna parte. ctrl-w n - crear una nueva ventana (puede abrir un archivo o comenzar un nuevo archivo aquí) ctrl-w v - dividir ventana existente verticalmente ctrl-n (en modo insertar) - autocompletar ( si es compatible):! para ejecutar un comando de shell, generalmente con in estándar como el archivo o una selección (shift-V)
Complementos útiles a tener en cuenta: * Buffer Explorer: use / be para ver los archivos en el búfer (y seleccione para volver a abrir)
reemplace ''foo'' con ''bar'' en cualquier lugar del archivo:% s / foo / bar / gc
" ~/.vimrc
" Turn on line numbering
set nu
" Turn on syntax highlighting
syntax on
" Set 4 space expanding tabs
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
"turn off line wrapping
set nowrap
" Map CTRL-N to create a new tab
:map <C-n> <ESC>:tabnew<RETURN>
" Map Tab and CTRL-Tab to move between tabs
:map <Tab> <ESC>:tabn<RETURN>
:map <C-Tab> <ESC>:tabp<RETURN>
:q -> quit
:w -> save
:q! -> quit and don''t save
:x -> save and quit
:[number] -> go to line number
G -> go to end of file
dd -> delete line
p -> "put" line
yy -> "copy" line
:s/[searchfor] -> search
Creo que esos son los básicos para comenzar
El poder real está en la búsqueda. Aquí están los comandos esenciales:
/ Steve encontrará la primera instancia de "Steve" en el texto. n encontrará el próximo "Steve" en el texto. :% s // Stephen / g reemplazará todas las instancias de "Steve" que acaba de buscar con "Stephen".
No para promocionarme, pero escribí una publicación en el blog sobre este tema. Se enfoca en las partes críticas de Vim para un principiante.
:set ignorecase smartcase
Hace que la búsqueda no distinga entre mayúsculas y minúsculas, a menos que su búsqueda incluya una letra mayúscula. Quizás no sea el más indispensable, pero me encuentro configurando esta opción cada vez que estoy editando en un lugar nuevo. Está en cualquier archivo vimrc que tengo.
Mis favoritos:
% find matching bracket/brace
* and # next/previous match
gg top of page
G end of the page
<Ctrl-v> Change to visual mode and select column
<Ctrl-a> increase current number by 1
<Ctrl-x> decrease current number by 1
Running macros
Estaba muy contento el día que aprendí sobre el uso de * o # para buscar, hacia abajo o hacia arriba respectivamente, la palabra debajo del cursor. Asegúrese de :set incsearch
y :set hlsearch
primero.
Cuando tiene alguna acción repetitiva para tomar Macros, generalmente es más rápido que la expresión regular. Sólo tipo
q[0-9a-z] in normal mode
Mucha gente usa
qq
porque es rápido Presione q en el modo normal nuevamente para detener la grabación. Entonces solo escribe
@[0-9a-z] in normal mode
para repetir lo que acaba de grabar
@q
para el ejemplo como arriba.
Editado para agregar: también puede repetir la macro. Digamos que programó una macro para saltar al principio de una línea, insertar una pestaña y luego saltar una línea. Luego prueba su macro escribiendo "@q" para ejecutarlo una vez. Luego puede repetir la acción nueve veces más escribiendo "9 @ q".
:%!xxd
Ver los contenidos de un búfer en hexadecimal. Revertir:
:%!xxd -r
Lo que encuentro insustituible (porque también funciona en vi, a diferencia del modo visual de vim) son marcas. Puede marcar varios puntos con m
(minúscula) y luego con una letra de su elección (por ejemplo, x). Luego vas a otro lado, y puedes regresar con `` x (backquote letter) to the exact spot, or with
''x` (letra de apóstrofe) para ir a la línea.
Estos movimientos se pueden usar como argumentos para comandos (yank, delete, etc.). Por ejemplo, desea eliminar 10 líneas; en lugar de contar y luego pasar a la línea superior e ingresar 10dd
, vaya al principio o al final del bloque, presione mm
(marcar m), luego vaya al otro extremo del bloque y presione d''m
( eliminar apóstrofo m). Si utiliza la función de comillas en lugar de apóstrofo en este ejemplo, la eliminación funcionará en función de los caracteres, no en línea. Intente marcar en el medio de la línea con "marcar m", moviéndose al centro de otra línea, luego ingrese "d mquotienda inversa m" y verá lo que quiero decir.
Mi mayor consejo: ctrl + q guarda el día en que accidentalmente presionas ctrl + s para guardar el archivo en el que estás trabajando
Tengo esto en mi vimrc
set number
set relativenumber
Esto me da un sistema de numeración de líneas que hace que las teclas j , k sean realmente productivas.