4 Stimmen

Schreiben Sie gleichzeitig in zwei Registrierungen in Vim

Ich benutze:

set clipboard=unnamed  

So werden ausgeschnittene und kopierte Auswahltexte im *-Register gespeichert, das praktischerweise mit dem Zwischenspeicher x verbunden ist (ich benutze Linux).

Ich hätte es auch gerne im +-Register, um sowohl das Einfügen mit der mittleren Maustaste als auch mit Strg-V in anderen Anwendungen die gleichen Ergebnisse erzielen zu lassen. Ich vermute, dass dies mit dem Unterschied zwischen xclip und xclip -selection c zusammenhängt.

Im Moment ist mein Workaround wie folgt:

noremap Y "+y  

So kann ich mit Yy die aktuelle Zeile in das +-Register kopieren und dann in einigen Anwendungen Strg-V verwenden. Aber dann muss ich im Voraus überlegen, ob ich die Maus oder Strg-V verwenden werde.

Gibt es eine Möglichkeit, dass die + und * Register den gleichen Wert haben, wenn ich etwas yanke oder wenn ich einen Text mit der Maus auswähle?

4voto

Ingo Karkat Punkte 159961

Ich denke du möchtest

:set clipboard+=unnamed,unnamedplus

Von der Hilfe:

unnamedplus Eine Variante der Flagge "unnamed", die das Clipboard-Register '+' (|quoteplus|) anstelle des Registers '*' für alle Operationen außer yank verwendet. Yank kopiert den Text in das Register '+' und auch in '*' wenn "unnamed" eingefügt ist.

Beachten Sie, dass Sie für diesen Optionswert eine ziemlich neue Vim 7.3 (Patchlevel 151?) benötigen.

1voto

greduan Punkte 4590

Wie in den Kommentaren diskutiert, hier ist eine Lösung:

vnoremap Y ygv"+y

Das funktioniert jedoch nicht, nur andersherum:

vnoremap Y "+ygvy

Hier ist, was es macht:

noremap Y: Abbilden auf die Y-Taste, unter Verwendung des Standardverhaltens von Tastenbelegungen. :h noremap
"+y: Kopieren in den +-Register.
gv: Vorherige visuelle Auswahl erneut auswählen.
y: Ein normaler Kopiervorgang in das *-Register (in Linux).

Ich freue mich, dass ich Ihnen helfen konnte, es zu lösen. :)

1voto

romainl Punkte 171412

Wenn Sie über den Tellerrand hinausdenken, können Sie autocutsel installieren, das beide Clipboards synchronisiert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X