Wenn ich programmieren lernte, drückte ich sowohl die öffnende als auch die schließende Klammer / etc, dann die linke Pfeiltaste und gab dann den Text ein. Zum Einfügen [hello]
würde ich also tippen []
und dann den linken Pfeil so, dass er über der ersten Klammer steht ( [
).
Ich mag das, weil ich weiß, dass ich immer die richtige Anzahl von Klammern / etc habe und ansonsten das Gefühl habe, dass meine Hand sich zur Klammer / etc-Taste hin und her bewegen muss
Aber wenn ich mich an die Vim-Denkweise halte, möchte ich nicht ständig nach den Pfeiltasten greifen. Gibt es etwas, das ich tun könnte, ohne die Pfeiltasten zu verwenden oder ständig aus dem Einfügemodus zu wechseln, um einfach zu drücken h
und wieder einzusteigen?
quelle
[
, würde ich tun]
,<Esc>
(was den Cursor auf das setzt]
) und schließlichi
was Platzieren Sie den Cursor im Einfügemodus zwischen den Klammern.ctrl-o 2h
? Ist das schneller als deine Hand zu den Cursorn zu bewegen? ;)h
oderj
ich werde andere Bewegungen verwenden. Es fühlt sich für mich schneller an, aber ich verstehe, dass einige Leute es anders fühlen :)Es gibt viele "Pair" -Plugins , die dies automatisch für Sie erledigen. Alle reiben mich jedoch falsch. Ich neige dazu, das Surround.vim- Plugin von Tim Pope zu verwenden . Ich mache folgendes:
<c-s>]
Im Einfügemodus, um[]
mit dem Cursor in der Mitte der Klammern einzufügen .quelle
Wenn Sie nur einen Platz benötigen , sich zu bewegen, ctrl-oim Einfügemodus Ihren nächsten Eingang einen normalen Befehl macht, so ctrl-o, hbewegt sich wieder ein. Die Modeline wird angezeigt,
--- (insert) ---
bis Sie den normalen Befehl eingeben .quelle
lh-Klammern bieten Zuordnungen für den Einfüge-, Normal- und visuellen Modus zum Einfügen von Klammerpaaren.
Anmerkungen:
(
im visuellen Modus umgibt (standardmäßig), wir müssen keinesi(
ähnlichen Sequenzen treffen .quelle
Frühere Antworten sind sehr gut. Aber ich denke, Sie möchten vielleicht etwas einfacher. Persönlich benutze ich
h
j
k
l
zum Bewegen. Daher habe ich meiner .vimrc Folgendes hinzugefügt:Nur ein kleiner Tipp. Sie sagten , dass Ihr Verfahren ist
i
,[]
,<Esc>hi
.Es gibt vom Bediener ausstehende Zuordnungen, dh Sie können
ci[
oderdi[
oderii[
.quelle
Ich persönlich bin kein großer Fan der automatischen Einfügung von Zeichen. Sie können einfach eine Reihe von Zuordnungen definieren, um Text und mehr den Cursor an die gewünschte Stelle einzufügen:
Beachten Sie, dass ein Plugin wie ultisnips auch solche Aufgaben ausführt , jedoch fortgeschrittener ist. Zum Beispiel kann ich in Javascript Folgendes eingeben:
und ich bekomme:
Sie können ein einfaches Snippet hinzufügen, um die Klammern zu vervollständigen. Dies ist eine spezielle .snippet-Datei, in der Folgendes gespeichert ist
~/.vim/UltiSnips/all.snippets
:${0}
ist die Cursorposition.siehe
:help UltiSnips-adding-snippets
für weitere Informationen.Beachten Sie, dass für ultisnips Python erforderlich ist. Ein weiteres bekanntes Plugin ist vim-snipmate . Das Vim-Wiki enthält eine vollständige Liste der Snippet-Plugins .
quelle