Mein Cursor befindet sich in der Mitte eines Absatzes, wenn ich plötzlich beschließe, diesen Absatz zu kopieren:
Also tippe ich vip
, um den Absatz visuell auszuwählen:
Jetzt drücke ich, um cmd+C
in die Zwischenablage zu kopieren (dies kann auf Ihrem System variieren, sollte aber für die zentrale Frage meines Posts nicht relevant sein), was den Cursor am Anfang des Absatzes belässt:
eher als die gewünschte Position, wo es war, als ich anfing.
Beachten Sie, dass das gleiche Problem auftritt, wenn Sie die Auswahl nicht visuell mit ziehen yip
.
Ich möchte, dass das Standardverhalten "zur ursprünglichen Cursorposition zurückkehren" ist, nachdem Auswahl- / Kopieraktionen wie diese ausgeführt wurden. Gibt es eine Konfiguration, die dies ermöglicht?
mm "+yap `m
(Beachten Sie, dass"+y
in Ihre System-ZwischenablageAntworten:
Eine mögliche Lösung ist die Verwendung von Sprüngen:
Vor dem Ziehen oder visuellen Auswählen können Sie einen neuen Sprung festlegen, auf den Sie zugreifen können, nachdem sich der Cursor bewegt hat. Verwenden Sie dazu m`.
Dann, nachdem sich Ihr Cursor aufgrund des Ruckelns bewegt hat, können Sie in die Sprungliste ctrlozurückspringen. Sie können auch die Liste der verfügbaren Sprünge mit
:jumps
und anzeigen und in dieser Liste mit ctrlound navigierenctrliZusammenfassend wäre Ihr Workflow:
Wie unter Verwendung von m` Sätzen eine Marke, können Sie mit ihm springen ``statt ctrlo.
Sie können
:h mark-motions
und:h :jumps
für weitere Informationen lesen .quelle
<leader>'
zu sein`
, das klappt bei mir ganz gut. (Ich benutze<space>
als mein Anführer.):h 'langmap'
. Ich sage nicht, dass es die ideale Lösung ist, aber vielleicht könnte es für Sie interessant sein.noremap ' `
noremap ` '
... Dies ist in meinem vimrc und funktioniert hervorragendSie können das Bewegen des Cursors vermeiden mit:
Siehe
:help range
,:help mark-motions
und:help :y
.quelle
:nmap <key> :'{,'}y<CR>
sollte den Job machen.Wenn Sie es gerade bearbeitet haben, besteht die einfachste Lösung darin, den g ;Cursor an der letzten Bearbeitungsposition zu positionieren.
Und wenn Sie den Absatz nicht bearbeitet haben, können Sie eine einfache tun Operation ersetzen mit dem gleichen Charakter sind Sie an (zB du bist auf
h
, Sie gebenrh
) bearbeitet „Ereignis“ ausgelöst werden, ohne tatsächlich etwas zu bearbeiten.quelle
'.
, aber es kann sehr nützlich sein, zwischen den letzten Änderungen mitg;
und zu navigiereng,
.g;
der Sie auch zur richtigen Spaltenposition gelangen?Das vim-easyclip Plugin hat eine Einstellung dafür:
Es ist für mich ein bisschen viel, ein komplettes Plugin nur für diese kleine Funktion zu installieren, daher bevorzuge ich die Verwendung von Marken gemäß meinem Kommentar.
quelle
Wenn wir die Antwort von Al.G. erweitern, können wir ohne Bearbeitung zum gewünschten Ort gehen. Lösung ist gi. Wir werden dieselbe Position erreichen, an der wir uns zuvor im letzten Einfügemodus befanden.
Wenn wir zum Anfang oder Ende des markierten Texts gehen möchten.
Wenn Sie den markierten Text ziehen, kehren Sie ebenfalls in den normalen Modus zurück und behalten möglicherweise die ursprüngliche Cursorposition bei.
Zurück zum ursprünglichen Ort nach dem Ziehen:
gv um das vorherige Highlight zu erhalten.
Jetzt können Sie im visuellen Modus mit der Taste
ooder zwischen der ursprünglichen und der aktuellen Position wechseln O.
Die Zeilen- und Spaltennummer der Statuszeile hilft dabei, die genaue Cursorposition zu ermitteln.
Dokumentation:
quelle
vip
wenn der Cursor in der Mitte eines Absatzes beginnt.vip
meine Bearbeitung.