¿Cuáles son los comandos esenciales de vim? ¿Qué necesita saber un nuevo usuario para evitar meterse en problemas? Un comando por comentario, por favor.Vim/vi Guía de supervivencia
Respuesta
Antes que nada necesitas saber cómo cerrar vi: ctrl-c: q!
Rest se puede encontrar desde vimtutor. Inicie vimtutor escribiendo vimtutor en su línea de comando
Control-C, luego ': q!'? ¿Por qué Control-C? ¿Por qué no es simple ESC? – tzot
Uno de mis comandos favoritos es% G, que lleva directamente al final de un archivo. Especialmente útil en archivos de registro.
En realidad, puedes soltar el '%' y simplemente escribir 'G'. El '%' no tiene sentido. –
% no tiene sentido, ya que lo lleva a un soporte coincidente. Si no está dentro de los corchetes (cuadrados, rizados o paréntesis), entonces es un no-op. – tzot
He estado manteniendo un Vi Reference Card conmigo durante años. Es muy útil.
Lo imprimí y lo fijé en mi tablero. ¡¡Es tan grande!! Gracias –
Entonces, ¿cuál es el único comando vi para obtener la tarjeta de referencia vi pdf? -) – tzot
Cómo cambiar entre los modos (i para ingresar al modo de inserción (de muchas maneras), esc para salir del modo de inserción, dos puntos para el modo de comando) y cómo guardar y salir. (: Wq)
utilizo vi muy a la ligera, y sólo utilizar los siguientes comandos:
a - switch to insert mode (after the cursor)
esc - return to command mode
:wq - save and quit
:q - quit (no save, only without modification)
:q! - force quit (no save, also with modification)
x - delete one character (in command mode)
dd - delete the whole line (in command mode)
Sé que hay muchos muchos más, pero esas son suficiente para conseguir que por.
si solo los está usando, entonces un editor basado en scintilla (por ejemplo, notepad ++) es mucho mejor. – hasen
Otro comando útil es buscar algo:/ p./Mon buscará (y en el caso de vim highlight) cualquier ocurrencia de Mon en su archivo.
: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
supongo que esos son el básico que empezar desde
Como ya hemos mencionado un par de 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.
Utilice 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.
Cuando tiene que tomar alguna acción repetitiva Las macros suelen ser más rápidas que las expresiones regulares. sólo tiene que escribir
q[0-9a-z] in normal mode
Mucha gente utiliza
qq
porque es rápido. Presione q en el modo normal nuevamente para detener la grabación. A continuación, sólo escriba
@[0-9a-z] in normal mode
a repetir lo que acaba de grabar.
@q
para el ejemplo anterior.
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".
alias vi nedit :)
todo el humor a un lado .. para vi cuando no se utiliza nedit ..
i
(interruptor al modo de inserción)a
(append = mover al final de línea y cambiar al modo de inserción)esc
(modo de inserción de salida)dd
dele te una líneax
borrar un carácter:wq
(guardar y salir)/
iniciar una búsquedan
Buscar siguiente?
búsqueda hacia atrás ..yy
(tirón) copiar una línea en el almacenamiento intermediopp
(pegar) péguelo aquír
(reemplazar un carácter)<N> <command>
este es un aseado - característica, pero agravante que le permite escribir los dígitos y después un comando de modo5dd
eliminará 5 líneas
pero en este punto que también podría bien - man vi
y actualice su memoria
Si bien hay MUCHOS más, cambié de Vi a nedit hace varios años, lo que me parece 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. ordena las líneas seleccionadas, busca y destruye 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 largo 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 cambiar de nuevo.
También es bueno ejecutar el vimtutor cuando el aprendizaje de estos comandos
i - el modo de inserción (escape para salir) dd - borrar línea turno-y - 'yanqui' (copia) de la línea p - 'Escribe' línea (s) (pasta) shift-v - Modo visual usado para seleccionar texto (tratando de "tirar" este texto y "ponerlo" en algún lugar). ctrl-w n - crear nueva ventana (puede abrir un archivo o iniciar un nuevo archivo aquí) ctrl-w v - dividir ventana existente verticalmente ctrl-n (en modo insertar) - autocompletar (si es compatible) :! ejecutar un comando de shell, por lo general con estándar en como el archivo o una selección (shift-V)
Complementos útiles a la vista: * Buffer Explorer - use \ be para ver archivos en el búfer (y seleccione -abierta)
Mi mayor consejo: ctrl + q salva el día cuando se pulse accidentalmente ctrl + s para guardar el archivo que se está trabajando
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).
"vim se está convirtiendo rápidamente en los emacs del nuevo siglo". Honestamente, no estoy seguro acerca de cómo interpretar esto. – Jeff
Este recent Vim tutorial from IBM es bastante bueno
reemplazar 'foo' con 'bar' en cualquier parte del archivo de :% s/foo/bar/gc
Lo que me parece insustituible (ya que funciona en vi también , a diferencia del modo visual de vim) son marcas. Puede marcar varios puntos con m
(minúsculas) y luego 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 al 10dd
, vaya al inicio o al final del bloque, presione mm
(marcar m), luego vaya al otro extremo del bloque y presione d'm
(eliminar apóstrofo metro). Si usa 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.
" ~/.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>
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 primero de :set incsearch
y :set hlsearch
.
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.
Consulte http://www.rayninfo.co.uk/vimtips.html para obtener una gran colección de consejos de Vim, desde el básico no se puede vivir sin hasta un material muy sofisticado que quizás nunca pensó en probar.
Aunque esta es una cuestión de preferencia personal, he descubierto que una de las cosas esenciales que hay que hacer es volver a asignar 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 el siguiente mapeo utilizando Control + S
:
inoremap <C-s> <Esc>:w<CR>
Esto tiene la ventaja de ser una asignación de teclas ya he comprometido a la memoria y tiene el valor añadido de ahorro de 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.
ctrl- [es equivalente a Esc – hasen
ctrl- [es incluso más difícil de alcanzar que Esc si no está usando un diseño de teclado estándar de EE. UU. (Mi caso). Pero la idea es que no esté restringido a Esc, como piensan muchos usuarios que no son Vim. Gracias por el comentario. –
Me gusta el Vim 5.6 Reference Guide, por 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?
¿Qué otro software ha resistido las pruebas del tiempo mejor que vim? – ojblass
Muchos de los grandes comandos se enumeran en el Vim Tips Wiki.
:set ignorecase smartcase
hace que la búsqueda de mayúsculas y minúsculas, a menos que su búsqueda incluye una letra mayúscula. No es el más indispensable quizás, pero me encuentro configurando esta opción cada vez que estoy editando en un lugar nuevo. Está en cualquier archivo vimrc que tengo.
No sabía nada de eso, ¡gracias! –
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 siguiente "Steve" en el texto. :% s // Stephen/g reemplazará todas las instancias de "Steve" que acaba de buscar con "Stephen".
No promocionarme, pero escribí una publicación blog sobre este tema. Se enfoca en las partes críticas de Vim para un principiante.
:%!xxd
Ver el contenido de un búfer en hexadecimal. Para volver:
:%!xxd -r
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
Nadie mencionó exuberantes ctags? Google e instalarlo; mucho mejor que los ctags predeterminados que probablemente tengas. Para usarlo, cd a la raíz de su proyecto y escriba
:! Ctags -R.
Crea una base de datos de todo en su proyecto ... java, C++, python, ruby, javascript, cualquier cosa, en un archivo llamado etiquetas.
: ctags de ayuda para una gran cantidad de comandos, demasiados para resumir, para usar las etiquetas generadas. Coloque el cursor sobre un nombre de función, escriba CMD], para abrir el archivo que lo define. Muchos más comandos así. Pronto se convierte en una segunda naturaleza ... casi tan agradable como un IDE (y VIM nunca te deja caer de la manera en que lo hacen los eclipses a menudo.
Hice mis primeros pasos usando The tutorial here, y he usado la hoja de referencia durante unas semanas. .., por supuesto, hay vimtutor en vim/gvim/MacVim
a veces es bueno volver a formatear una memoria intermedia (es decir, re-pestaña, alinear los frenos, etc) Hace poco aprendí un ahorro de tiempo para esto:
gg=G
Por ejemplo ...se convertiría el siguiente:
if (!flag)
{
// Do something special
}
else
{
// Do another special thing
}
en lo siguiente:
if (!flag)
{
// Do something special
}
else
{
// Do another special thing
}
o si ha tenido un archivo XML que usted está esperando para volver a guión porque el formato es todo Screwy podría ejecutar la por encima de mando y convertir algo como lo siguiente:
<root>
<addressBook>
<contact first="Frank" last="Tank"/>
<contact first="Foo" last="Man"/>
</addressBook>
</root>
en algo un poco más legible como la siguiente:
<root>
<addressBook>
<contact first="Frank" last="Tank"/>
<contact first="Foo" last="Man"/>
</addressBook>
</root>
Cambié de Textmate a VIM hace unos meses y escribí una guía sobre cómo hacer 110 comandos de edición de texto en VIM. Está organizado en categorías, como administración de archivos, autocompletado de palabras y resaltado de sintaxis.
favor ver este sitio de una manera divertida de aprender el movimiento esencial comandos: http://kikuchiyo.org. Creo que la mayoría de los comandos esenciales están cubiertos en el hilo, pero siempre me gusta sugerir esto para los recién llegados a vim. haga clic en el primer enlace del tren, que tiene una leyenda para comandos de movimiento básicos y el comando de inserción i
para recoger rubíes. Buenas prácticas para moverse rápidamente.
:g/<pattern>/t$
copiará <pattern>
al final del archivo. Útil cuando quieres extraer líneas pero no quieres hacerlo una por una.
tengo unas pocas cosas en mi vimrc
set number
set relativenumber
Esto me da un sistema de numeración de líneas que hace j,k teclas realmente productivo.
- 1. lsof guía de supervivencia
- 2. Cómo trazar la curva de supervivencia generada por survreg (supervivencia del paquete de R)?
- 3. Generar/trazar una función de supervivencia de log-normal
- 4. Webkit Guía de transporte
- 5. GUÍA de lectura humana
- 6. Guía de referencia de CSS3
- 7. Guía de software de kiosco
- 8. Guía de inicio de QuantLib
- 9. Guía para principiantes de LINQ
- 10. Guía de codificación C++ 102
- 11. Guía de estilo para C#?
- 12. D/Phobos Guía de estilo
- 13. OpenGL 3.2 ¿Guía de programación?
- 14. Guía de accesibilidad para iOS
- 15. Guía de mejores prácticas: Swing
- 16. Guía de inicio para ektron
- 17. Guía Desconectado Android Dev
- 18. ¿Existe una guía entretenida?
- 19. Guía secuencial y fragmentación
- 20. guía para instalar crawler4j
- 21. Guía secuencial en Java
- 22. Guía para principiantes a BPEL
- 23. NCurses y Perl, ¿alguna guía?
- 24. Magento wsdl. Buscando una guía
- 25. X509 guía/tutorial en C#
- 26. Buena .Net Remoting Tutorial/Guía
- 27. Guía de inicio rápido de Maven
- 28. Guía de autenticación de Ruby on rails
- 29. Guía de estilo de Google Python
- 30. Guía de arquitectura de SQL Server
Vuelva a escribir esto para pedir a las personas que solo publiquen * un * comando por respuesta para que puedan votar correctamente. – SCdF
Sí. Por favor, vuelve a escribir esto. –
Debería ser un wiki comunitario entonces. – mmcdole