Відповіді:
Вам доведеться використовувати ярлики 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 для копіювання тексту.
Tmux copy paste буде працювати, проте є кілька недоліків.
По-перше, при копіюванні декількох рядків тексту вам доведеться вибрати кілька рядків. Копія паста Tmux зазвичай не розуміє, чи 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 знає, як спілкуватися з вашим системним буфером обміну, ви можете скористатися+або*зареєструватися, щоб уникнути тимчасового файлу.