Gibt es eine Verknüpfung in vim für :20
gefolgt von i
, dh einen Befehl zum Einfügen in eine Zeilennummer?
Gibt es eine Verknüpfung in vim für :20
gefolgt von i
, dh einen Befehl zum Einfügen in eine Zeilennummer?
Antworten:
Sie können den nmap
Befehl vim folgendermaßen verwenden:
:nmap ~! 20Gi
Und jedes Mal, wenn Sie Tastenanschläge drücken ~!
(oder eine andere Tastenkombination auswählen können), bewegt sich der Cursor im Einfügemodus auf Zeile 20.
startofline
deaktivierter Option die Cursorspalte G
erhalten bleibt und daher der i
Einfügemodus nicht unbedingt für das erste nicht leere Zeichen der Zeile gestartet werden kann. In diesem speziellen Fall ist es besser, I
oder gI
Befehl zu verwenden (abhängig davon, ob Sie eine Zeilennummer vor oder nach einem möglichen führenden Leerzeichen einfügen möchten).
Du kannst Tippen :20i<enter>Text you want to insert including newlines...<esc>
:Ni
Zeile 20 einzufügen. Habe ich die Frage falsch interpretiert?
Eine andere Möglichkeit, das zu tun, was Sie verlangen, ist der 20Gi
normale Modus. es kann nicht schneller sein, aber es kann einfacher sein, sich zu erinnern. Wenn Sie es ohne Schicht machen möchten, versuchen Sie es20ggi
Wenn ich mehr darüber nachdenke, funktioniert dies in offensichtlichen Fällen nicht, aber ich mache gerne Folgendes
:set mouse=a
:nmap <2-LeftMouse> i
nmap
Dies bringt mich im normalen Modus (Hinweis ) zu dieser Zeile, und wenn ich doppelklicke, wird sie in die angegebene Zeile eingefügt. Die Nützlichkeit könnte trivial sein, aber wenn Sie es gewohnt sind, die Maus zu verwenden, hilft diese Karte.
viemu.com hat ein halbwegs anständiges Cheatsheet, wenn Sie möchten
Der Normalmodus i
ist im Befehlsmodus als verfügbar startinsert
, akzeptiert jedoch keine Zeilennummer. Sie benötigen also zwei Befehle und eine Leiste, um sie zu trennen :20 | startinsert
.