Ich bin mir sicher, dass es früher ein Plugin für diese Art von Sachen gab, aber jetzt, wo ich es brauche, kann ich es (natürlich) nicht finden, also frage ich einfach nett und einfach.
Was ist der einfachste Weg, um zwischen Klammern, Anführungszeichen oder allgemein einer Liste übereinstimmender Zeichen zu wählen?
write ( *, '(a)' ) 'Computed solution coefficients:'
Zum Beispiel möchte ich hier auswählen (a)
, oder Computed solution coefficients:
.
Ich interessiere mich nicht für mehrzeilige Fälle, sondern nur für Fälle, die in einer Zeile auftreten.
yi"
wählen Sie alle mit Anführungszeichen ausci(
oderci)
macht es für das, wonach ich gesucht habe. Vielen Dank. Ich verstehe dasi
in diesem Fall immer noch nicht ganz , aber wen interessiert es, solange es funktioniert, oder? :)Um zwischen den einfachen Anführungszeichen zu wählen, mache ich normalerweise ein
vi'
("innere Anführungszeichen auswählen").Innerhalb eines Klammerblocks verwende ich
vib
("inneren Block auswählen")Innerhalb eines geschweiften Klammerblocks können Sie verwenden
viB
("Großbuchstabe B")Um die Auswahl "inklusive" zu treffen (wählen Sie auch die Anführungszeichen, Klammern oder Klammern aus), können Sie
a
stattdessen verwendeni
.Weitere Informationen zur Auswahl von
:help text-objects
Textobjekten finden Sie im Handbuch oder in vim.quelle
Diese Auswahlmethode ist in der Vim-Hilfe integriert und wird ausführlich behandelt. Es umfasst XML-Tags und mehr.
Siehe
:help text-objects
.quelle
Zur Auswahl in einfachen Anführungszeichen verwenden
vi'
.Zur Auswahl in Klammern verwenden
vi(
.quelle
ci'
oderci(
zum Ändern anstelle einer visuellen Auswahl. Aber es macht genau das, was ich wollte. Danke :)%vi(
oder%vib
Verwenden Sie Pfeile oder
hjkl
, um zu einem der Klammerausdrücke zu gelangen,v
wählen Sie dann den visuellen Modus (dh den Auswahlmodus)%
und springen Sie dann zur anderen Klammer.quelle
Schreiben Sie eine Vim-Funktion in .vimrc mit der
searchpair
integrierten Funktion:( http://vimdoc.sourceforge.net/htmldoc/eval.html )
quelle
Ich würde der am häufigsten gewählten Antwort ein Detail hinzufügen:
Wenn Sie gvim verwenden und in die Zwischenablage kopieren möchten, verwenden Sie
"+<command>
So kopieren Sie den gesamten Inhalt zwischen Klammern (oder Parens oder geschweiften Klammern)
Beispiel:
"+yi}
Kopiert den gesamten Inhalt zwischen den geschweiften Klammern Ihres Cursors in die Zwischenablage.quelle
y
.Ich habe ein Plugin erstellt
vim-textobj-quotes
: https://github.com/beloglazov/vim-textobj-quotesEs bietet Textobjekte für die nächsten Anführungszeichenpaare eines beliebigen Typs. Wenn Sie nur
iq
oder verwendenaq
, können Sie den Inhalt von einfachen ('), doppelten (") oder hinteren (`) Anführungszeichen bearbeiten, die den Cursor derzeit umgeben, sich vor oder hinter dem Cursor befinden (in dieser Reihenfolge). Mit anderen Worten, es springt bei Bedarf vorwärts oder rückwärts, um die Anführungszeichen zu erreichen.Es ist einfacher zu verstehen, wenn man sich Beispiele ansieht (der Cursor wird mit angezeigt
|
):foo '1, |2, 3' bar
;; nach dem Drücken vondiq
:foo '|' bar
foo| '1, 2, 3' bar
;; nach dem Drücken vondiq
:foo '|' bar
foo '1, 2, 3' |bar
;; nach dem Drücken vondiq
:foo '|' bar
foo '1, |2, 3' bar
;; nach dem Drücken vondaq
:foo | bar
foo| '1, 2, 3' bar
;; nach dem Drücken vondaq
:foo | bar
foo '1, 2, 3' |bar
;; nach dem Drücken vondaq
:foo | bar
Die obigen Beispiele gelten für einfache Anführungszeichen. Das Plugin funktioniert für doppelte (") und hintere (`) Anführungszeichen genauso.
Sie können auch alle anderen Operatoren:
ciq
,diq
,yiq
,viq
, usw.Weitere Informationen finden Sie auf der oben verlinkten Github-Seite.
quelle
Eine einfache Keymap in vim würde dieses Problem lösen. map viq F ”lvf” hh Dieser obige Befehl ordnet viq den Schlüsseln zu, um zwischen Anführungszeichen zu suchen. Ersetzen Sie "durch ein beliebiges Zeichen und erstellen Sie Ihre Keymaps. Stecken Sie diese beim Start in vimrc und Sie sollten sie jedes Mal verwenden können.
quelle