Я хотел бы, чтобы размер оболочки, используемой в команде Tmux run-shell
, был таким же, как количество столбцов в текущем отображаемом окне.
Используя следующую команду
bind \ run-shell "tput cols"
Я вижу, что размер столбца всегда установлен на 80. Как мне изменить его, чтобы он был таким же, как в текущем окне?
Я планирую использовать это, чтобы обновить мою текущую привязку ключа, чтобы отобразить буфер копирования на монтажном столе моей системы. (Я на Mac)
bind \ run-shell "reattach-to-user-namespace bash --noprofile -c 'tmux show-buffer -b 0 | pbcopy'"
В настоящее время все строки содержат 80 символов. Очень раздражает длинные очереди.
1 ответ
Упаковка происходит из-за использования show-buffer
. В этом случае лучше использовать save-buffer
; он никоим образом не «массирует» данные (show-buffer
также выполняет кодирование strvis (3)).
По умолчанию для команд буфера используется первый буфер (индекс 0); это делает -b 0
значением по умолчанию, так что вы можете оставить его выключенным.
Нет необходимости использовать такую дополнительную оболочку. Просто используйте оболочку прямо в pbcopy .
bind \ run-shell "tmux save-buffer - | reattach-to-user-namespace pbcopy"
Отвечая на ваш вопрос, не существует быстрого и простого способа сделать то, что вы просите. Среда для процесса, запущенного run-shell
, является производной от «глобальной» среды сервера и фактически не является частью какого-либо конкретного сеанса, окна или панели. В настоящее время нет способа точно узнать, какой сеанс, окно или панель были активны, когда run-shell
выполнялся через привязку.
Похожие вопросы
Новые вопросы
tmux
tmux - это мультиплексор терминалов: он позволяет создавать на одном экране несколько терминалов (или окон), каждый из которых выполняет отдельную программу, доступ к ним и управление ими. tmux может быть отсоединен от экрана и продолжать работать в фоновом режиме, а затем снова подключен.