Vim copy-paste через термінали


19

Звичайний vim yankі pasteпрацює лише в тому ж вікні (але працює в файлах і закриває / зберігає команди). Чи можна змусити його працювати через термінали (витягнути з вікна в одному терміналі і вставити в інший), і якщо так, то як?

Відповіді:


30

Напевно, найпростіша річ, яку ви спробуєте, - це ввести set clipboard=unnamedсвої програми .vimrcта перезапустити свої сеанси vim.

Це дозволяє запускати yank(наприклад yy) в одному вікні і put(наприклад p) в іншому вікні просто працювати, оскільки всі сеанси vim будуть спільними для одного і того ж буфера вибору X.

З іншого боку, ваш буфер yank буде перезаписаний, як тільки ви виберете текст у будь-якому іншому вікні будь-якої програми.

Зверху це також означає, що все, що ви збираєтеся в vim, тепер можна вставити в будь-яку програму середнім клацанням.

Якщо вам це не подобається, ви можете набрати "+або "*перед вашим yank і поставити команди, наприклад, "+yyщоб вирвати рядок.

Ці +форми взаємодіють з буфером обміну ( "+yце як Ctrl+ C, "+pце як Ctrl+ V).
Ці *форми взаємодіють з буфером вибору ( "*yце як лівою кнопкою миші і перетягнути, "*pце як середньої кнопкою миші).

Детальні відомості див. У розділі Вибір графічного інтерфейсу , підтримка вибору X11 та параметри буфера обміну та миші .


3
Боже, я люблю середній клацання. :)
Дан М.

set clipboard=unnamedне працює для мене (я помістив його у .vimrc і перезапустив усі сеанси vim). На жаль, ні інші методи. Схоже, мій vim не компілюється з підтримкою x. Я використовую VNC для підключення до машини Linux з машини Windows.

3
Так, для цього методу потрібна підтримка X11. Запустіть :echo has('x11'), якщо підтримка X включена, вона буде надрукована 1.
Мікель

0

Якщо ви хочете скопіювати цілий файл у ваш цільовий файл.

Відкрийте цільовий файл in vim.

Покладіть курсор там, де вам потрібно, і введіть наступне:

:r /path_to_file/file.ext

Це скопіює весь файл туди, де знаходиться ваш курсор ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.