Wie die meisten von Ihnen wahrscheinlich wissen, können Sie %
in der Zeile nach vorne suchen, um die nächste gepaarte Klammer / Klammer / Paren zu finden und zu ihrem passenden Partner zu wechseln:
|a|rray[index] = value;
" |e| is the cursor; hit %:
array[index|]| = value;
Ich hoffe, dass es einen ähnlichen Schlüssel gibt, der in der Zeile rückwärts sucht, z.
array[index] = value|;|
" |;| is the cursor again, hit the key I'm looking for:
array|[|index] = value;
Die meisten vim-Befehle haben sowohl ein Rückwärts- als auch ein Vorwärts-Befehl, daher sollte dies der Fall sein. Hat es keinen Partner? Wenn ja, ist das so, weil sie, sobald es sich um einen gepaarten Charakter handelt, dasselbe tun würden?
vim
keyboard-shortcuts
Kevin
quelle
quelle
%
nicht nur in derselben Zeile nach der gepaarten Klammer gesucht wird, sondern weiter unten in der Datei. Ich mag es besonders für Loops usw. in jeder Programmsprache der Wahl.g%
Befehl, der dem zu ähneln scheint, wonach Sie suchen.Antworten:
Wenn Sie wirklich rückwärts nach häufig übereinstimmenden Zeichen suchen möchten, können Sie einen dieser
vim
spezifischen Befehle verwenden:[(
... (gehe zum vorherigen unübertroffenen(
Charakter)[{
... (gehe zum vorherigen unübertroffenen{
Charakter)Diese beiden Befehle haben übereinstimmende Vorwärtspartner:
])
... (gehe zum nächsten unübertroffenen)
Charakter)]}
... (gehe zum nächsten unübertroffenen}
Charakter)Es gibt andere ähnliche Befehle für
#ifdef
und für C-Kommentare.Weitere Informationen finden Sie
vim
mit dem Befehl:help %
.quelle
%
haben, geht es natürlich in beide Richtungen - den passenden Partner zu finden. Wenn Sie sich innerhalb eines Blocks befinden, finden die obigen Befehle die entsprechende Übereinstimmung.% finden die passende Klammer. Wenn Sie also eingeschaltet sind (oder {, wird vorwärts gesucht.
Wenn Sie sich auf einem} oder) befinden, wird rückwärts gesucht.
% ist nicht gerichtet, sondern findet nur die passende Klammer.
quelle
Ich habe es gerade versucht
:map ^] ^%%
(mit^]
= Ctrl+ v Ctrl+ 5hier als Analogie zu%
= Shift+ 5).Es funktioniert für den angegebenen speziellen Fall, aber da es vom Cursor nicht rückwärts sucht, wählt es immer die erste offene Klammer in der Zeile aus und lässt den Cursor am Anfang der Zeile, wenn keine Übereinstimmung gefunden wird .
Dies ist eine bessere Lösung; Es ist hässlich und es gibt wahrscheinlich viel Raum zum Vereinfachen, aber ich denke, die Semantik ist genau richtig (bewegt den Cursor nicht, wenn kein offener Paren vorhanden ist, und bewegt sich zum ersten offenen Paren vor der aktuellen Spalte).
zum
^]
= Ctrl+ v Ctrl+5^[
= Ctrl+v Esc^M
= Ctrl+v Returnquelle
[(
würde es genauso gut funktionieren und erfordert keinemap
.