У меня есть два файла, открытых в Vim, каждый в одной панели Tmux. Я хотел бы скопировать, скажем, 10 строк из одного файла в другой.
Как я могу сделать это, не используя мышь Copy
-> Paste
?
vim
tmux
copy-paste
Patryk
источник
источник
:w /tmp/lines
, а затем:r /tmp/lines
в другом случае). Или, если ваш Vim знает, как общаться с системным буфером обмена, вы можете использовать регистры+
или,*
чтобы избежать временного файла.Ответы:
Вам придется использовать ярлыки 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
- вставить буфер обмена X11h,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
напрямую.Источник команды буфера обмена: https://vi.stackexchange.com/questions/84/how-can-i-copy-text-to-the-system-clipboard-from-vim
источник