Eine Sache, die mich in vi / vim immer gestört hat :
Wenn ich Text "ziehe" (auch "kopieren"), dann an eine andere Stelle in der Datei gehe und "einfüge", bleibt mein Cursor am Anfang des Textes, den ich gerade eingefügt habe. Dies unterscheidet sich von den meisten modernen Editoren, bei denen der Cursor am Ende des eingefügten Textes steht.
Angenommen, der "Kopierpuffer" enthält das Wort "awesome", das ich nach dem Wort "an" in die Phrase einfügen möchte:
This is an editor
In zum Beispiel gedit nach dem Einfügen:
This is an awesome editor
^ Cursor is here
In vi :
This is an awesome editor
^ Cursor is here
Kann ich vi so ändern , dass es sich in dieser Hinsicht wie (zum Beispiel) gedit verhält ?
Antworten:
Verwenden Sie in vim
gp
undgP
anstelle vonp
undP
, um den Cursor nach dem eingefügten Text zu lassen. Wenn Sie die Bindungen austauschen möchten, fügen Sie die folgenden Zeilen in Ihre ein.vimrc
:Seltsamerweise in vim,
p
undP
lassen Sie den Cursor auf dem zuletzt eingefügten Zeichen für einen Zeichenpuffer, auch im kompatiblen Modus.Ich weiß nicht, wie ich das in anderen vi-Versionen ändern soll.
quelle
Ich bin mir ziemlich sicher, dass dies beabsichtigt ist. Wenn Sie mit "p" (Kleinbuchstaben P) einfügen, soll es nach der aktuellen Position oder Linie eingefügt werden. Wenn Sie jedoch mit "P" (Großbuchstabe P) einfügen, wird es vor der aktuellen Position oder Linie eingefügt . Wenn Sie möchten, dass sich der Cursor am Ende Ihres neu eingefügten Textes befindet, gewöhnen Sie sich an, "P" anstelle von "p" zu verwenden.
Ich wette, wenn Sie tief genug gegraben haben, könnten Sie ein vim-Rezept finden, das Sie in Ihre .vimrc einfügen können und das den Cursor immer an das Ende Ihrer Paste bewegt, selbst wenn Sie "p" verwenden.
quelle
P
Belässt den Cursor am Anfang des eingefügten Textes in vi (zumindest in nvi und per POSIX).