Vim - Wählen / Ziehen / Löschen von Inhalten in Klammern, einschließlich Klammern


31

In vim ist es möglich, Inhalte zwischen den Klammern einschließlich der Klammern ähnlich wie auszuwählen

yi{ yi(

Aber ich möchte die Klammern einschließen.

Antworten:


0

Sie können den Mauszeiger über eine Klammer bewegen, vf{oder vf(, um in den visuellen Modus zu gelangen, und dann alles bis zur Klammer (und einschließlich) auswählen.


5
Eigentlich wird dies nur die öffnende Klammer auswählen. Wenn Sie sich oben auf der öffnenden Klammer befinden, f{werden Sie zur nächsten öffnenden Klammer bewegt, auf der Sie sich bereits befinden. Was Sie wahrscheinlich wollen, ist v%das, was Sie zur passenden Zahnspange bewegt und auf beiden Seiten verwendet werden kann.
Michael Mior

Dies ist nicht die richtige Antwort. Siehe @ garyjohns Antwort unten.
Michael Sandman

75

Ja. Verwenden Sie aanstelle von i, als

ya{
ya(

Sehen

:help a{
:help a(

und allgemeiner

:help text-objects
:help 04.8

1
Dies sollte die akzeptierte Antwort sein!
Phanhuy152

3

Macht f{v%oder f(v%macht was du willst? Es bewegt den Cursor zum nächsten {oder (wechselt in den visuellen Modus und bewegt den Cursor dann zum entsprechenden Abschluss} oder). Wenn Sie den gewünschten Bereich bereits überschritten haben, können Sie ein Großbuchstaben verwenden F. Funktioniert genauso gut, um zum Schluss zu springen} oder) auch zuerst - f}v%.

Sobald Sie haben , was Sie ausgewählt möchten, können Sie y, d, xetc. es. Der %Befehl funktioniert auch mehrzeilig, so dass Sie diese Technik auf große Codeblöcke anwenden können, wenn Sie dies wünschen (obwohl fund Fnicht, Sie müssen also entweder in der ersten oder in der letzten Zeile beginnen).

EDIT: Bessere Antwort, scheint genau das zu sein, was Sie suchen:

ya(

Das Ersetzen iin Ihrem ursprünglichen Befehl mit atut genau das Gleiche, mit der Ausnahme , dass es umfasst das Zeichen ‚(‘. Dies wird als „reißt einen Block“, während yi(„einen zerrte i nner Block“.

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.