Wenn ich ein Mapping mit omap
oder onoremap
deklariere, würde ich gerne den Fall behandeln, in dem die Bewegung blockweise, zeilenweise oder standardisiert ist.
Betrachten wir zum Beispiel den folgenden Block:
%Vor% Cursor steht auf dem Buchstaben f. Angenommen, ich definiere eine Operatorkarte von K
bis :normal! vjl
(gehe zu Buchstabe k).
Interessanterweise bekomme ich dvK
, dK
, d^VK
jeweils
Aber wenn ich dVK
laufen lasse, wird es nicht funktionieren, ich bekomme genau das gleiche wie mit dvK
.
Ich habe versucht, visualmode()
zu verwenden (Zuordnung definiert als @=visualmode()<cr>jl<cr>
, aber das funktioniert nicht. Es scheint, dass der Rückgabewert dieser Funktion nicht sofort betroffen ist, wenn Sie v
, V
oder CTRL-V verwenden im vom Bediener anfragenden Modus.
Hat jemand bitte eine Ahnung?
Danke
Ich habe einige Antworten auf von einem Operator ausgehende Zuordnungen geschrieben. In einer von ihnen 1 Ich skizzierte einen Überblick über eine Funktion, die die verschiedenen Fälle (char, line, blockweise Auswahl) gemäß der Dokumentation behandeln sollte:
%Vor% Hier ist ein Beispiel, das die Anzahl der Leerzeichen mit <F4>
: & gt;
Um zu erreichen, was Sie wollten, können Sie einfach
definieren %Vor% Beachten Sie, dass diese Bewegung, die durch einen ex-Befehl gebildet wird, immer charakteristisch ist (siehe :h movement
Dann können Sie dv
oder dV
oder d^V
frei verwenden, um die Bewegung zu einem anderen Typ zu machen und zu bekommen, was Sie wollen.
Tags und Links vim