Ответы:
Вам придется использовать ярлыки tmux. Если предположить, что ярлык команды tmux используется по умолчанию: Ctrl+ b, то:
Ctrl+ b, [Войдите в режим копирования (?).
Переместить в начало / конец текста, чтобы выделить.
Ctrlspace
Начните выделять текст (в Arch Linux). Когда я скомпилировал tmux из исходного кода для OSX и других Linux, Spaceон обычно работает сам по себе. Выбранный текст меняет цвета, поэтому вы будете знать, сработала ли команда.
Переместитесь в противоположный конец текста для копирования.
Alt+ wКопирует выделенный текст в буфер обмена Tmux. (На Mac используйте Esc+ w.)
Переместите курсор в противоположную панель tmux или в совершенно другое окно tmux. Поместите курсор туда, куда вы хотите вставить только что скопированный текст.
Ctrl+ b, ]Вставить скопированный текст из буфера обмена Tmux.
tmux неплохо умеет сопоставлять команды с пользовательскими сочетаниями клавиш.
Смотрите Ctrl+ b, ?для полного списка установленных сочетаний клавиш.
screenярлыки: Ctrl + A [(войдите в режим копирования), Space(начните выделение), Enter(завершите выделение), Ctrl + A ](вставьте).
Enterключ.
К сожалению, я пока не могу добавить комментарий к ответу Алекса Лича, поэтому я собираюсь добавить здесь дополнение для пользователей Mac OS X:
byobu/ tmuxсо всеми настройками по умолчанию, это сработало, Alt + w - нет.
Если вы используете vim и tmux на macOS (протестировано на macOS 10.12.2, tmux 2.3):
(Предположим, что сочетание клавиш префикса tmux равно prefix. Префикс ctrl+ bпо умолчанию.)
Я подключаюсь к своему серверу CentOS на компьютере с Windows, используя ssh-клиент ZOC-терминала . Вот что работает для меня:
<prefix>+[<Space><Enter><prefix>+]Вы можете использовать системный буфер обмена с «* y и» * p вместо обычных y и p.
"+2yy- скопировать две строки в буфер обмена X11 "+dd- вырезать строку в буфер обмена X11 "+p- вставить буфер обмена X11
h,j,k,lдля переместить. Я также видел иногда на моей Ubuntu VM, регистр "+" исчезает, по неизвестной причине. Чтобы убедиться, что у вас есть +регистр, вы можете ввести :regи проверить, есть ли строка "+в первом столбце.
yи pна "+yи "+p?
Если у вас vimоткрыт, лучше использовать vim copy paste для копирования текста.
Tmux copy paste будет работать, однако есть несколько недостатков.
Во-первых, при копировании нескольких строк текста вам нужно будет выбрать несколько строк. Tmux copy paste обычно не понимает, что в vimстроке vim есть номера строк или есть пометки (например, относительные числа / абсолютные числа). В результате он также будет копировать их.
Во-вторых, я обнаружил, что если текст имеет форматирование определенного языка, и вы напрямую пытаетесь скопировать вставить с помощью tmux в vim, это приведет к неправильному форматированию. Этого можно избежать с помощью set paste!. Однако это требует гораздо больше работы.
"+yдля копирования и "+pвставкиVimизначально предоставляет метод для копирования вставки между буфером vim и системным буфером обмена, используя либо "+yили "*y. Затем вставьте с помощью "+pили "*p. Это позволит избежать копирования относительных чисел в желобе или других случайных меток, которые не имеют отношения к vim
Несколько вариантов использования vim, поскольку последовательность ярлыков tmux немного длинная, и мне трудно ее запомнить
Как и в ответах выше, вы можете использовать "+yи "*yдля копирования, а затем "+pи "*pсоответственно для вставки. Если вы хотите, чтобы vim по умолчанию использовал буфер обмена, вы можете просто использовать его y/pнапрямую.
set clipboard=unamed "sets the default copy register to be *
set clipboard=unamedplus "sets the default copy register to be +
Источник команды буфера обмена: https://vi.stackexchange.com/questions/84/how-can-i-copy-text-to-the-system-clipboard-from-vim
:w /tmp/lines, а затем:r /tmp/linesв другом случае). Или, если ваш Vim знает, как общаться с системным буфером обмена, вы можете использовать регистры+или,*чтобы избежать временного файла.