2010-01-12 14 views
6

Tengo que agregar una personalidad VIM a un IDE. Nunca utilicé VIM más que las ediciones más básicas y ahora estoy abrumado por la complejidad de la estructura de comandos.¿Hay algún patrón detrás de los muchos comandos VIM?

¿Existe alguna estructura general para la combinación de movimientos de conteos y comandos de inserción/eliminación? No puedo ver la madera de los árboles.

Respuesta

17

Bueno, es evidente que existe un patrón de posición de los dedos detrás de h, j, k, l.

El hecho de que ^ va al comienzo de una línea y $ va a la final está modelada en la sintaxis común.

Ctrl-F y Ctrl-B página hacia adelante y hacia atrás, y eso es bastante intuitiva.

i insertos (antes) y un APPENDs (después del cursor). Del mismo modo,
I insertos al comienzo de la línea, y A se agrega al final.

> y < guión y outdent, respectivamente. Eso también es algo intuitivo.

Pero en general, muchos de los otros comandos están en las teclas que quedaron – es difícil encontrar un mapeo intuitivo entre las letras del alfabeto y los comandos de un editor.

Los recuentos de repetición siempre se ingresan antes de un comando, y en su mayoría repiten el comando muchas veces, pero en algunos casos hacen algo inteligente pero análogo.

Creo que el secreto para no volverse loco por vi es comenzar con solo un pequeño puñado de comandos.Tengo un montón de compañeros que no saben hacer otra cosa que no sea

  • mover el cursor por el uso de las teclas de flecha (que no tiene que utilizar h,j, k , l);
  • inserto con i, eliminar con Del (que no tiene que utilizar x);
  • eliminar una línea con dd
  • salir del modo de entrada con Esc
  • salir de VI con : x (salida) o q! (dejar de fumar, y tirar mis cambios!)

Porque soy mucho más inteligente, los comandos adicionales que conozco y uso son:

  • ir a la parte superior del archivo con gg, la parte inferior con G.
    Puedo ir a un número de línea específico con (número de línea) G.
  • copiar una línea con y (tirón), pegarlo con p
  • cambiar una palabra con cw, el resto de la línea con C
  • eliminar una palabra con dw, el resto de la línea con D
  • I veces use . para repetir el último comando, o u (deshacer) si cometí un error.

Cuando tenga ocasión de usar otros comandos, puede enseñárselos uno por uno según sea necesario.

+0

+1 ¡Bien explicado! – richsage

10

This is a good article para explicar la filosofía VIM.

+0

¡Qué gran pieza! – APC

+0

ViEmu es increíble también :) –

0

Hay muchos tutoriales interesantes y agradables. Un ejemplo es

http://blog.interlinked.org/tutorials/vim_tutorial.html

Pero la estructura amplia que la mayoría de ellos le daría es

  1. Hay dos modos principales para la edición - El modo de comando y modo de inserción. Puede pasar del modo insertar al modo comando usando la tecla.
  2. Puede ejecutar comandos en el modo comando escribiendo una sola tecla o una secuencia de teclas.
  3. comandos pueden ayudarle a alcanzar una amplia variedad de cosas supresión de líneas - Dd YanKing (copia de líneas) - yy líneas de pegado por debajo de la línea actual - p líneas de pegado por encima de la línea actual - P (y por lo on)

    La mayoría de los comandos en el modo comando se pueden preestablecer mediante un "conteo" para indicar el número de veces que se debe ejecutar el comando. Por ejemplo, 3dd eliminaría tres líneas.

    Un conjunto de comandos en el modo de comando le permite pasar al modo de inserción. Eso se explica a continuación.

  4. Existen diferentes formas de ingresar al modo de inserción desde el modo de comando. Entre ellos se destacan (i-insert en el cursor, I-insert al comienzo de la línea, o-insert a línea abajo, O-insert una línea arriba, a-append, A-append al final de la línea.

la referencia rápida en

http://www.andy-roberts.net/misc/vim/vim.pdf

le ayudará a entender la importancia de "contar"

2

creo que la característica que mejor define VIM con respecto a otros editores es su amplia gama de comandos de movimiento. Lo primero que debe aprender a usar completamente VIM es golpear las teclas de flecha lo menos posible, y piense en el texto en términos de "bloques" como "una oración", "una etiqueta", "una palabra", "un grupo de corchetes".

Digamos que tiene function foo($bar, $fooz) puede cambiar los parámetros simplemente colocando el cursor en cualquier lugar dentro de los corchetes y presionando ci) (mnemónico: cambiar el bracket interno). El mismo patrón se aplica a otros comandos: yank (y), eliminar (d) y así sucesivamente.

Sé que esto no explica toda la "filosofía VIM", pero la combinación de comandos de modo normal con la gran cantidad de modificadores de movimiento es lo que realmente me hizo ver la luz.

Cuestiones relacionadas