2012-09-24 6 views
22

Vimmers wissen, dass . einfache Änderungen wiederholen kann. Ich habe versucht, eine Liste zu erstellen, was wiederholt werden kann oder nicht, aber gibt es eine Liste?Was kann der Punktbefehl genau wiederholen?

Ich habe versucht, Liste, was ich weiß, wiederholbar zu sein: sie alle Normal-Mode-Befehle sind:

  • Texteinblendung: a, A, i, I, o, O
  • Änderungen Text Register beteiligt : c, C, d, D, p, gp, P, gP, s,.210, x, X
  • Andere Textänderungen: J, gJ, r, gr, R, gR, gU, gu, gw, gq, g?, ~, g~, <, >, =
  • Equivalent dieser Operationen im visuellen Modus.
  • ctrl-Operationen: C-A, C-X
  • gi wird das Einfügen aber an der aktuellen Cursor-Position, nicht zuletzt Einfügeposition wiederholen. So ist es Art von funktioniert.

Aber es sind nicht enthalten:

  • Alle bewegen und Anzeigebefehle (zu viele hier aufgeführt werden)
  • Alle fold Befehle (z-Befehle, auch zahlreiche)
  • Mark (m)
  • Substitution repeat (&, g&)
  • Kolon oder Filter-Befehl (!, :, Q)
  • Makroaufnahmen oder Wiedergabe (q oder @, wird die letzte wiederholbare Aktion während der Aufnahme oder Wiedergabe wiederholt).
  • Diff setzen und erhalten (dp, do)
  • Rückgängig (u, U, C-R)
  • Amis (y)

Ich weiß, dass repeat Plugins tpope Plugins benutzerdefinierte haben kann auf die Wiederholung abonnieren Mechanismus. Aber ist die obige Liste standardmäßig gut?

+0

Ich wage es wahrscheinlich, etwas zu sagen wiederholt, dass 'undo' rückgängig machen würde. Ich kann mir nichts einfallen lassen, was im Widerspruch zu dieser Aussage steht (aber ich habe vim seit einiger Zeit nicht mehr benutzt, also werden die Dinge unscharf). Vielleicht ist es einfacher, eine Liste von Dingen zu finden, die 'rückgängig machen' rückgängig machen, als eine Liste von Dingen zu finden. –

+0

@RandyMorris "rückgängig machen" konnte Rückgängig-Cmd-Zeile (z. B. s/foo/bar /) Änderungen, aber "." kann sie nicht wiederholen. – Kent

+0

AFAK, "c, C, ..." kann mit "." –

Antwort

2

einige Kombination mit v/V kann auch "Punkt" wiederholt werden.

z.B.

Vgq, v/VU oder v/Vu

4

Ich glaube, eine Änderung jeder Befehl ist, der den aktuellen Puffer modifiziert. Der Befehl . schließt Ex-Befehle aus (weil das ein anderer Modus ist, der in der fernen Geschichte mit vi verschachtelt wurde), und kann optional Yanks enthalten.

Also für Ihre Liste, :help change.txt, gefiltert für Ex-Befehle, ist wahrscheinlich die beste Quelle.

Beachten Sie, dass wenn ein Änderungsbefehl nicht angewendet werden kann (d. H. Er piept), er auch nicht für die Wiederholung registriert ist; Die Ausführung des Befehls muss erfolgreich sein.

+1

Ich habe das _feeling_, dass Ihre Antwort ist, intuitiv intuitiv, aber es ist nicht, weil '.' Nicht wiederholt '&' noch 'g &'. – Benoit

+1

'&' und 'g &' selbst wiederholen einen Befehl (letzter ': s'), also denke ich, dass das der Grund ist, sie auszuschließen. – rburny

2

Tim Popes repeat.vim kann repeat viele weitere Dinge machen (einschließlich Sachen wie surround.vim und andere müssen haben).

Um eine Bewegung zu wiederholen, siehe ,/; (Vorwärts-/Rückwärtsrichtung).

einen Ex-Befehl zu wiederholen, @: ist eine gute Tastenkombination

+0

Ich weiß über repeat.vim (es ist in der Frage erwähnt). Ja, ';,' kann 'fFtT'-Bewegungen wiederholen. Vielleicht auch "nN". – Benoit

+0

@Benoit Oh. Ich habe die Erwähnung völlig übersehen. Ich glaube, ich habe '/ repeat' verwendet, um nach Erwähnungen auf der ganzen Seite zu suchen ... Tut mir leid – sehe