Wie in Klammern wählen (oder Anführungszeichen oder ...) in Vim?
-
21-08-2019 - |
Frage
Ich bin sicher, verwendet es ein Plugin für dieses irgendwie Sachen zu sein, aber jetzt, wo ich es brauche, kann ich nicht scheinen, um es zu finden (natürlich), also werde ich einfach schön und einfach fragen.
Was ist der einfachste Weg zwischen Klammern auszuwählen, oder Anführungszeichen oder im Allgemeinen eine Liste Zeichen passender?
write ( *, '(a)' ) 'Computed solution coefficients:'
Zum Beispiel, hier würde Ich mag (a)
auszuwählen, oder Computed solution coefficients:
.
Ich bin nicht daran interessiert, in mehrzeiligen, nur Fälle, die auf einer Linie auftreten.
Lösung
Verwenden Sie, was Navigationstaste Sie in den Klammern erhalten möchten, dann können Sie entweder yi(
oder yi)
kopieren alles in den passenden Pars verwenden. Dies funktioniert auch mit eckigen Klammern (z yi]
) und geschweifte Klammern. Neben y
können Sie auch löschen oder Text (z ci)
, di]
).
Ich habe versucht, dies mit Doppel- und Einzel Anführungszeichen, und es scheint auch dort zu arbeiten. Für Ihre Daten, das tue ich:
write (*, '(a)') 'Computed solution coefficients:'
Bewegen Sie den Mauszeiger auf die C
, geben Sie dann yi'
. Bewegen Sie den Cursor auf eine leere Zeile, traf p
und bekommen
Computed solution coefficients:
Wie CMS bemerkt , funktioniert dies für visuelle Modus Auswahl als auch -. nur verwenden vi)
, vi}
, vi'
, etc
Andere Tipps
zwischen den einzelnen Anführungszeichen wähle ich ein vi'
in der Regel tun ( „wählen innere einfache Anführungszeichen“).
Innerhalb einer Klammer Block, verwende ich vib
( "inneren Block wählen")
Im Inneren einer geschweiften Klammern blockieren Sie viB
verwenden können ( "Kapital B")
Um die Auswahl „inklusive“ zu machen (wählen Sie auch die Anführungszeichen, Klammern oder Klammern) Sie a
statt i
verwenden können.
Sie können mehr über die Textobjekt lesen Auswahlen auf dem Hand oder :help text-objects
innerhalb vim.
Diese Methode der Auswahl ist eingebaut und gut in der Vim Hilfe abgedeckt. Es umfasst XML-Tags und vieles mehr.
Siehe :help text-objects
.
in einfachen Anführungszeichen Zur Auswahl verwenden vi'
.
Für die in Klammern Verwendung vi(
auswählen.
Verwenden Sie die Pfeile oder hjkl
einen der Klammerung Ausdrücke zu erhalten, dann v
visuellen (d Auswahl) Modus zu wählen, dann %
auf die anderen Konsole zu springen.
Schreiben Sie eine Vim-Funktion in .vimrc mit der searchpair
eingebaute Funktion:
searchpair({start}, {middle}, {end} [, {flags} [, {skip}
[, {stopline} [, {timeout}]]]])
Search for the match of a nested start-end pair. This can be
used to find the "endif" that matches an "if", while other
if/endif pairs in between are ignored.
[...]
Ich würde ein Detail auf die meisten Stimmen Antwort hinzufügen:
Wenn Sie gvim verwenden und wollen in die Zwischenablage kopieren, verwenden Sie
"+<command>
all den Inhalt zwischen den Klammern kopieren (oder Pars oder geschweiften Klammern)
Zum Beispiel:. "+yi}
in die Zwischenablage kopiert den gesamten Inhalt zwischen den geschweiften Klammern Ihren Cursor
Ich habe ein Plugin vim-textobj-quotes
gemacht: https://github.com/beloglazov/vim- textobj Anführungszeichen
Es stellt Textobjekte für die nächsten Paare von Anführungszeichen jeglicher Art. Mit nur iq
oder aq
es Sie auf dem Inhalt der einzelnen ( '), doppelten ( ") oder zurück (`) Zitate, die zur Zeit die Cursor umgeben, sind vor dem Cursor bedienen kann, oder hinter (in dieser Reihenfolge von Präferenz). Mit anderen Worten, es springt vorwärts oder rückwärts, wenn die Zitate erreichen benötigt.
Es ist leichter zu verstehen, indem man Beispiele (die Cursor mit |
dargestellt):
- Vorher:
foo '1, |2, 3' bar
; nach dem Pressendiq
:foo '|' bar
- Vorher:
foo| '1, 2, 3' bar
; nach dem Pressendiq
:foo '|' bar
- Vorher:
foo '1, 2, 3' |bar
; nach dem Pressendiq
:foo '|' bar
- Vorher:
foo '1, |2, 3' bar
; nach dem Pressendaq
:foo | bar
- Vorher:
foo| '1, 2, 3' bar
; nach dem Pressendaq
:foo | bar
- Vorher:
foo '1, 2, 3' |bar
; nach dem Pressendaq
:foo | bar
Die obigen Beispiele für einfache Anführungszeichen angegeben werden, funktioniert das Plugin genau die gleiche Art und Weise für die doppelte ( ") und zurück (`) zitiert.
Sie können auch alle anderen Operatoren. ciq
, diq
, yiq
, viq
, etc
haben Sie einen Blick auf die GitHub-Seite, um weitere Informationen verknüpft oben.
Ein einfaches keymap in vim würde dieses Problem lösen. Karte VIQs F“LVF“ hh Diese obigen Befehl Karten ViQ auf die Schlüssel in Anführungszeichen zu suchen. Ersetzen Sie "mit einem beliebigen Zeichen und erstellen Sie Ihre keymaps. Halten Sie diese in vimrc während des Starts und Sie sollten in der Lage, es zu benutzen jedes Mal.