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).


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 %

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 ).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.