Я хотел бы, чтобы размер оболочки, используемой в команде 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 символов. Очень раздражает длинные очереди.

2
Jason 2 Янв 2013 в 10:09

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 выполнялся через привязку.

0
Chris Johnsen 3 Янв 2013 в 08:04
Я подумал, что это могло быть так. Думаю, я возвращаюсь к тому, что, как я думал, было работой по записи во временный файл и передаче его в pbcopy.
 – 
Jason
4 Янв 2013 в 21:40