Wie hängt man in vim an die Zwischenablage ein?

21

Ich weiß bereits, dass Sie etwas in das a-Register kopieren können, indem Sie Folgendes verwenden: (plus einen Befehl zum Ziehen, Löschen usw.)

"a

Ich verstehe auch, dass Sie an das a-Register anhängen können, indem Sie verwenden:

"A

Außerdem verstehe ich, wie man etwas in die Zwischenablage kopiert:

"+

Was gebe ich ein, um an das Zwischenablage-Register anzuhängen?

Meine vim Version:

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan 2 2014 19:39:59) Huge version with GTK2 GUI.
Jason Basanese
quelle

Antworten:

10

Dafür gibt es keinen normalen Modus-Befehl, aber Sie können einfach ein anderes Register und :letdas Zwischenablage-Register an den Inhalt dieses Registers anhängen :

"Ay
"Ay
"Ay
:let @+ = @A
romainl
quelle
1
Würde ich das in meine .vimrc-Datei einfügen?
Jason Basanese
3
Bitte beachten Sie, dass let @+ = @Adie Art des Registers verworfen wird a. Der richtige Weg Register zu kopieren , ist so etwas wie folgt aus : call setreg('+', getreg('a', 1, 1), getregtype('a')).
Sato Katsura
// Ist dies tatsächlich append obwohl?
Nathan Basanese
//, warum listest du drei "AyBefehle auf?
Nathan Basanese
Es könnten vier oder zwölf gewesen sein. Nur ein Beispiel.
Romainl
7

Sie können anrufen setreg('+', lines, 'a'), aber soweit ich das beurteilen kann, gibt es keine Möglichkeit, dies mit Befehlen im normalen Modus zu tun. Dazu müssen Sie eines der Großbuchstabenregister verwenden.

lcd047
quelle
Nur mit :let @+ .= 'XXX'scheint zu funktionieren?
Martin Tournoij
7
@Carpetsmoker Ja und nein. Es gab kürzlich eine Diskussion darüber auf vim_dev und anscheinend sollten Sie das nicht tun, obwohl es unter bestimmten Umständen zu funktionieren scheint. Ich nehme an, dass es mit dem Inhalt des Registers zu tun hat, der einen Typ (Zeichen / Zeile / Block) hat, und dass die Verkettung von Zeichenfolgen nicht die erforderliche Buchhaltung übernimmt. Es macht sowieso keinen Unterschied, es ist immer noch kein normaler Modusbefehl.
lcd047