VIM: Wiederholung von t und T Bewegungen

571
dotancohen

Die ;Bewegung sollte wiederholen t, T, f, und FBewegungen. Für fund Fdas funktioniert gut, wenn der Cursor auf dem Zeichen steht. Drücken Sie jedoch ;nach toderT funktioniert jedoch nicht, da VIM immer wieder dasselbe Zeichen findet (dh der Cursor bewegt sich nicht weiter).

Gibt es eine Problemumgehung dafür? Könnte es ein VIM-Fehler sein, obwohl es technisch korrekt ist?

3
Die Problemumgehung besteht darin, "2" auszuführen. Ich bin nicht sicher, ob dieses Verhalten als Fehler angesehen werden kann, es sollte jedoch genauer dokumentiert werden. romainl vor 12 Jahren 0
Sie sollten sich auf jeden Fall das easymotion-Plugin ansehen - es hat mein Zuhause von f, F, t, T komplett geändert https://github.com/Lokaltog/vim-easymotion epsilonhalbe vor 12 Jahren 0

2 Antworten auf die Frage

5
garyjohn

That behavior is controlled by the ; flag of 'cpoptions'. Execute

:verbose set cpo? 

to see how yours are set.

This is a vi-compatibility issue. If your Vim is configured to be vi-compatible, the ; will be included in 'cpoptions' and you will get the behavior you observe. See

:help 'cpoptions' :help cpo-; :help 'compatible' 

The solution to your problem depends on how you got Vim into this vi-compatible state. One usually has to go to extra effort to do that, such as starting Vim as "vim -u NONE", with -C or with no .vimrc file in your home directory.

Edit:

This was a problem that was fixed in Vim 7.3.235 with the addition of the ; flag to 'cpoptions'. In earlier versions, Vim always behaves as described in dotancohen's question.

Ich sehe keine Erwähnung von `;` in `: h 'cpoptions`` oder`: h' compatible'` und `: set cpo?` Liefert `aABceFs`. Keiner dieser Briefe scheint sich auf `tTfF 'oder`;, `zu beziehen. romainl vor 12 Jahren 0
Es steht am Ende der Liste der Flags unter ": help 'cpoptions" ". Siehe ": help cpo-;". Ich werde das meiner Antwort hinzufügen. Der Wert von 'cpo', den Sie sehen, ist der Standardwert, wenn `Vim` im Modus 'nocompatible' gestartet wird. Dies ist der übliche Fall. Siehe die allererste Zeile von ": help 'cpoptions'". Wenn Sie "Vim" im vi-Modus starten (dh "kompatibel"), z. B. indem Sie es als "vim -u NONE" markieren, enthält "cpo" alle Optionsflags, einschließlich ";", und Sie erhalten das vi -kompatibles Verhalten von `;`. garyjohn vor 12 Jahren 0
Nun, meine Vim-Version ist 7.3.35 und ich sehe in der Hilfe überhaupt kein;; Außerdem spuckt Vim ein `E539`, wenn ich`: set cpo + =; `setze, ob ich im kompatiblen Modus bin oder nicht. Dies ist wahrscheinlich ein Versionsproblem. romainl vor 12 Jahren 0
2
broomdodger

As I recall this was a bug that has now been fixed.

It seems fixed in vim version 7.3.584

What version of vim are you using?

Bill

Danke, ich bin noch am 7.3.154. Es ist großartig zu wissen, dass dies behoben ist! Wie hast du das gefunden? Ich kann den VIM-Bugtracker nicht finden. dotancohen vor 12 Jahren 0
Es gibt keinen Bug-Tracker, aber Patches finden Sie in ftp://ftp.vim.org/pub/vim/patches/7.3/README. Es sieht so aus, als wäre es bei 7.3.235 behoben worden: '";" bleibt bei einem "t" -Befehl hängen, es ist nicht nützlich '. garyjohn vor 12 Jahren 2
Vielen Dank. Ich habe diese Seite gefunden, komme aber nicht an den ersten 200 Bytes vorbei, die Seite hängt. dotancohen vor 12 Jahren 0
Dieser Link war ftp. Versuchen Sie diesen http-Link: http://ftp.vim.org/pub/vim/patches/7.3/README broomdodger vor 12 Jahren 0