Wie gehe ich aus der Klammer einer Zeile in vim heraus?

7

Ich habe die Lösung gelesen, die unter /programming/11037825/vim-get-out-of-parenthesis-brackets-etc beantwortet wurde . Das ist nichts anderes als ein Befehl A, der Sie am Ende der Zeile wegnimmt.

Aber meine Anforderung ist etwas anderes. Angenommen, ich habe eine Datei mit -
x = (3+5)/(2+1);
Wenn der Cursor eingeschaltet ist, +möchte ich den Cursor auf /oder zuerst bewegen ), aber nicht auf ;(Sie können "nach dem Zeichen" anstelle von "auf dem Zeichen" betrachten).

alhelal
quelle
1
so etwas : nnoremap ,f /[)/]<cr>?
Christian Brabandt
@ChristianBrabandt Ja, so ähnlich. Da die Klammern jedoch unterschiedlich sein können, muss ich überprüfen, ob ich in ()oder {}oder []oder bin <>(obwohl es sich nicht um Klammern handelt).
Alhelal

Antworten:

16

Ich bin mir nicht 100% klar, ob Sie danach fragen, aber ich denke, Sie suchen vielleicht nach:

])

Dies springt zum nächsten Gehäuse ). Wenn sich Ihr Cursor also auf /der folgenden Seite befand:

(2 / (3 + 5) * 9) 
   ^

Es würde am ersten vorbei )springen und hierher springen:

(2 / (3 + 5) * 9)
                ^

Alternativ würde für Ihren einfacheren Fall %%auch funktionieren. Der erste %springt zur Öffnung (und der zweite springt zu seinem Gegenstück, dem Schließen ).

Sehen:

  • :help ])
  • :help %
Reich
quelle
1
]} ]) [{ [(arbeiten aber [[und ]]nicht arbeiten.
Alhelal
2
@alhelal [[und ]]etwas anderes machen: siehe:h ]]
Rich
2

Mein Plugin- Match-Up liefert die Zuordnungen ]%und [%ist wie eine Trennzeichen-agnostische Version von ])/ ]} , um zu einem der Elemente eines umgebenden Matching-Paares zu gelangen. Da es die in aufgeführten Symbole verwendet matchpairs, funktioniert es standardmäßig für ()/ {}/ []und funktioniert für <und >wenn es matchpairsenthält <:>.

Dateitypen können auch erweiterte Übereinstimmungspaare angeben (z. B. if/endifin Vimscript), ähnlich dem Plugin-Matchit, das mit vim verteilt wird (außer Matchit scheint nicht gepflegt zu sein und diese Zuordnungen funktionieren nicht ).

Masse
quelle