Як додавати до буфера обміну реєстрацію у vim?


21

Я вже знаю, що ви можете скопіювати щось до реєстру за допомогою: (плюс команда yank, delete тощо)

"a

Я також розумію, що ви можете додати до реєстру за допомогою:

"A

Крім того, я розумію, як скопіювати щось у реєстр буфера обміну за допомогою:

"+

Що я ввожу, щоб додати до регістра буфера обміну?

Моя версія vim:

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

Відповіді:


10

Для цього немає звичайної команди режиму, але ви можете просто додати інший реєстр та :letрегістр буфера обміну до вмісту цього реєстру:

"Ay
"Ay
"Ay
:let @+ = @A

1
Я поставив би це дозвіл у свій .vimrc файл?
Джейсон Басанес

3
Зверніть увагу, що let @+ = @Aвідкидає тип реєстру a. Правильний спосіб для копіювання регістрів що - щось на зразок цього: call setreg('+', getreg('a', 1, 1), getregtype('a')).
Сато Кацура

//, чи це на самому справі Append , хоча?
Натан Басанес

//, чому ви перераховуєте три "Ayкоманди?
Натан Басанес

Це могло бути чотири чи дванадцять. Просто приклад.
romainl

7

Ви можете зателефонувати setreg('+', lines, 'a'), але наскільки я можу сказати, немає ніякого способу зробити це за допомогою команд у звичайному режимі. Для цього вам потрібно використовувати один з великих регістрів букв.


Просто використання, :let @+ .= 'XXX'здається, працює?
Мартін Турноїй

7
@Carpetsmoker Так і ні. Нещодавно було обговорено це питання на vim_dev, і, мабуть, ви цього не повинні робити, хоча це може здатися, що воно працює за певних умов. Я припускаю, що це стосується вмісту реєстру, що має тип (символ / рядок / блок), і об'єднання рядків, що не здійснює необхідну бухгалтерію. Це все одно не має ніякої різниці, все одно це не звичайна команда режиму.
lcd047
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.