Найти в Дзене
UFO.Hosting

Как копировать и вставлять текст в tmux: обзор основных способов

У новичков работа в tmux почти всегда строится по похожему алгоритму: сначала ты радуешься, что наконец-то можешь держать на сервере десяток окон, панелей и сессий, которые переживают разрыв SSH. А потом наступает, когда ты пытаешься скопировать пару строк из лога, жмешь привычное сочетание клавиш и ничего не происходит. Либо команда прерывается, либо выделение ведёт себя странно, либо вставка внезапно вставляет какой-то текст из внутренней памяти tmux, а не то, что ты минуту назад выделял мышью. В этой статье мы понятном разберемся, почему так происходит. А по промокоду DZEN вы всегда можете получить скидку на заказ VPS или dedicated от UFO.Hosting. С этим кодом вы сможете запустить свои проекты на надежной и производительной платформе, готовой к любым нагрузкам. В обычной жизни есть понятные и всем привычные сочетания клавиш Ctrl+C и Ctrl+V. В tmux на это наслаиваются два мира: Далее рассмотрим несколько жизненных сценариев работы с программой, чтобы вам было понятнее. Это самый прос
Оглавление

У новичков работа в tmux почти всегда строится по похожему алгоритму: сначала ты радуешься, что наконец-то можешь держать на сервере десяток окон, панелей и сессий, которые переживают разрыв SSH. А потом наступает, когда ты пытаешься скопировать пару строк из лога, жмешь привычное сочетание клавиш и ничего не происходит. Либо команда прерывается, либо выделение ведёт себя странно, либо вставка внезапно вставляет какой-то текст из внутренней памяти tmux, а не то, что ты минуту назад выделял мышью.

В этой статье мы понятном разберемся, почему так происходит.

А по промокоду DZEN вы всегда можете получить скидку на заказ VPS или dedicated от UFO.Hosting. С этим кодом вы сможете запустить свои проекты на надежной и производительной платформе, готовой к любым нагрузкам.

Почему в tmux два буфера, а ощущение будто четыре

В обычной жизни есть понятные и всем привычные сочетания клавиш Ctrl+C и Ctrl+V. В tmux на это наслаиваются два мира:

  1. мир терминала — то, чем живёт твой эмулятор терминала (GNOME Terminal, Konsole, kitty, alacritty и так далее). Он умеет выделять мышью и копировать в системный буфер.
  2. мир tmux — отдельная реальность внутри терминала. tmux умеет хранить скопированное внутри себя, даже если ты на удалённом сервере, даже если терминал вообще без графики. И именно поэтому у tmux есть собственный режим копирования.

Далее рассмотрим несколько жизненных сценариев работы с программой, чтобы вам было понятнее.

Вариант №1: «Я хочу копировать и вставлять внутри tmux — и мне этого достаточно»

Это самый простой и часто самый полезный сценарий. Например: вытащить кусок конфигурации из одного окна и вставить в другое, не выходя из tmux.

Логика такая:

  • войти в режим копирования: Prefix + [
  • вставить из tmux-буфера: Prefix + ]

Prefix — это “приставка” tmux (обычно Ctrl+B, но у многих стоит Ctrl+A).

Когда ты нажимаешь Prefix + [, tmux как будто говорит: «Хорошо, сейчас ты не работаешь с командной строкой, а смотришь историю вывода и можешь что-то оттуда вытащить”.

Если у тебя включен vi-режим (что бывает чаще всего), то дальше всё довольно привычно:

  • нашёл место в тексте
  • нажал Space — начал выделение
  • довёл курсор куда надо
  • нажал Enter и tmux запомнил выделенное

После этого Prefix + ] вставляет этот кусок туда, где ты сейчас стоишь курсором.
И это работает всегда — хоть локально, хоть на сервере, хоть в голом консольном окружении.

Вариант №2: «Мне надо, чтобы копирование попадало в системный буфер»

Вот здесь начинаются нюансы. Системный буфер обмена — это то, откуда ты вставляешь тексты в браузер, редактор, мессенджеры, заметки. tmux сам по себе туда доступ не гарантирует. Ему нужно либо:

  • чтобы терминал поддерживал специальный механизм передачи (OSC 52), либо
  • чтобы tmux отправлял скопированный текст во внешнюю команду, которая умеет класть его в clipboard.

Самый практичный путь

tmux умеет “пропустить” скопированный текст через команду. Работает это следующим образом: ты выделил в tmux, и он тут же отправил это в wl-copy / xsel / pbcopy. В tmux 3.2+ это делается через copy-command .

Для Linux:

  • Wayland: wl-copy
  • Xorg: xsel или xclip

Для macOS: pbcopy

И обычно рекомендуют выключить встроенную синхронизацию set-clipboard, чтобы не получать конфликтов.

Примеры:

Wayland:

set -s set-clipboard off

set -s copy-command 'wl-copy'

Xorg:

set -s set-clipboard off

set -s copy-command 'xsel -i'

macOS:

set -s set-clipboard off

set -s copy-command 'pbcopy'

А как быть с мышью?

С мышью всё просто: она может работать «как в терминале» или «как в tmux» и иногда эти режимы конфликтуют.

Вы можете включить работу в tmux:

set -g mouse on

В этом случае прокрутка и выделение начинают жить по правилам tmux. Это удобно, когда ты хочешь выделять текст из истории панели, а не только то, что сейчас видно на экране.

Но если твоя цель — это просто копировать мышью и вставлять в браузер, иногда проще вообще не трогать tmux-мышь и пользоваться тем, что умеет терминал сам.

Что в итоге

Если ты работаешь на Linux и хочешь, чтобы всё было предсказуемо:

  • оставь базовую механику tmux (copy-mode).
  • добавь copy-command под свою систему.

выключи set-clipboard, чтобы tmux не пытался угадать за тебя.