2012-09-24 14 views
22

Vimmers sabe que . puede repetir cambios simples. Traté de crear una lista de lo que se puede repetir o no, pero ¿hay una lista?¿qué puede repetir el comando de punto, exactamente?

me trataron de una lista de lo que sé que es repetible: son todos los comandos en modo normal: la inserción

  • texto: a, A, i, I, o, cambios O
  • texto que implican registros : c, C, d, D, p, gp, P, gP, s,.210, x, X
  • Otros cambios en el texto: J, gJ, r, gr, R, gR, gU, gu, gw, gq, g?, ~, g~, <, >, =
  • Equivalente de estas operaciones en modo visual.
  • de control de operaciones: C-A, C-X
  • gi repetirá la inserción pero en la posición actual del cursor, no en última posición de inserción. Por lo tanto, tipo de funciona.

Pero no incluye:

  • Todos mover y visualizar los mandos (demasiado numerosas para enumerarlas aquí)
  • Todos los comandos de plegado (Z-comandos, también numerosas)
  • Marcar (m)
  • repetición Sustitución (&, g&)
  • Colon o comando Filter (!, :, Q)
  • Grabaciones de macros o reproducción (q o @, repetirá la última acción repetible realizada durante la grabación o reproducción).
  • Dif PUT y GET (dp, do)
  • Deshacer (u, U, C-R)
  • Yankees (y)

repeat plug-in de que tpope puede tener plugins personalizados suscribirse a la repetición mecanismo. Pero por defecto, ¿la lista anterior es buena?

+0

Me atrevería a decir que, probablemente, se repite todo lo que 'undo' desharía. No puedo pensar en nada fuera de mi cabeza que esté en conflicto con esa afirmación (pero hace tiempo que no uso vim, así que las cosas se vuelven borrosas). Tal vez es más fácil encontrar una lista de cosas que 'deshacer 'se deshará de lo que es encontrar una lista de cosas' .' se repetirá. –

+0

@RandyMorris "deshacer" podría deshacer cambios de línea de cmd (por ejemplo: s/foo/bar /), pero "." no puedo repetirlos. – Kent

+0

AFAK, "c, C, ..." puede repetirse usando "." –

Respuesta

2

algunas combinaciones con v/V también se pueden repetir en "puntos".

p. Ej.

Vgq, v/v o VU/Vu

4

creo que un cambioes cualquier comando que modifica el búfer en uso. El comando . excluye los comandos Ex (porque ese es un modo diferente que estaba atornillado a vi en el historial lejano, supongo), y opcionalmente puede incluir tirones.

Por lo tanto, para su lista, :help change.txt, filtrada para comandos Ex, es probablemente la mejor fuente.

Tenga en cuenta que cuando no se puede aplicar un comando de cambio (es decir, suena), tampoco se registra para repetir; la ejecución del comando debe ser exitosa.

+1

Tengo la sensación de que su respuesta es precisa, intuitiva, sin embargo, no es porque '.' no repite' & 'ni' g & '. – Benoit

+1

'&' y 'g &' ellos mismos repiten un comando (último ': s'), así que supongo que esa es la razón para excluirlos. – rburny

2

Tim Pope repeat.vim puede hacer repeat muchas cosas más (incluyendo cosas como surround.vim y otras cosas imprescindibles).

Para repetir un movimiento, mira ,/; (dirección hacia adelante/atrás).

Para repetir un comando Ex, @: es una buena combinación de teclas

+0

Sé acerca de repeat.vim (se menciona en la pregunta). Sí, ';,' puede repetir movimientos 'fFtT'. Tal vez también mencione 'nN'. – Benoit

+0

@Benoit Oh. Pasé por alto completamente la mención. Creo que utilicé '/ repeat' para buscar menciones en toda la página ... Lo siento. – sehe

Cuestiones relacionadas