W jaki sposób można dołączyć do schowka rejestrację w vimie?

21

Wiem już, że możesz skopiować coś do rejestru za pomocą: (plus polecenie szarpnięcia, usunięcia itp.)

"a

Rozumiem również, że możesz dołączyć do rejestru, używając:

"A

Ponadto rozumiem, jak skopiować coś do rejestru schowka, używając:

"+

Co mam wpisać, aby dołączyć do rejestru schowka?

Moja wersja vima:

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan 2 2014 19:39:59) Huge version with GTK2 GUI.
Jason Basanese
źródło

Odpowiedzi:

10

Nie ma do tego polecenia trybu normalnego, ale można po prostu dołączyć do innego rejestru, a :letrejestr schowka do zawartości tego rejestru:

"Ay
"Ay
"Ay
:let @+ = @A
romainl
źródło
1
Czy umieściłbym to w moim pliku .vimrc?
Jason Basanese
3
Należy pamiętać, że let @+ = @Aodrzuca typ rejestru a. Prawidłowy sposób skopiować rejestrów jest coś takiego: call setreg('+', getreg('a', 1, 1), getregtype('a')).
Sato Katsura,
//, Czy to się jednak rzeczywiście zgadza ?
Nathan Basanese
//, dlaczego wymieniasz trzy "Aypolecenia?
Nathan Basanese
To mogło być cztery albo dwanaście. Tylko przykład.
romainl
7

Możesz zadzwonić setreg('+', lines, 'a'), ale o ile wiem, nie można tego zrobić za pomocą poleceń w trybie normalnym. W tym celu musisz użyć jednego z rejestrów wielkich liter.

lcd047
źródło
Samo używanie :let @+ .= 'XXX'wydaje się działać?
Martin Tournoij,
7
@Carpetsmoker Tak i nie. Niedawno odbyła się dyskusja na ten temat na vim_dev i najwyraźniej nie powinieneś tego robić, nawet jeśli może się wydawać, że działa w pewnych warunkach. Zakładam, że ma to związek z zawartością rejestru mającego typ (znak / wiersz / blok) i łączeniem łańcuchów, które nie wykonują niezbędnej księgowości. To i tak nie robi żadnej różnicy, nadal nie jest poleceniem w trybie normalnym.
lcd047,