Intereting Posts

Почему tmux задает переменную TERM для отображения?

Цитирование страницы tmux man:

Переменная среды TERM должна быть установлена ​​на «экран» для всех программ, запущенных внутри tmux. В новых окнах автоматически добавится «TERM = screen» в их среду, но следует соблюдать осторожность, чтобы не перезапускать это в файлах запуска оболочки.

Это связано с тем, что сеанс tmux может быть подключен к любому терминалу (например, удаленному), а screen является самым низким общим знаменателем? Если я знаю свой терминал, могу ли я заставить его без неожиданных результатов, или некоторые неподдерживаемые возможности ломаются (например, прокрутка)?

Он делает это, чтобы воспользоваться ранее установленным описанием терминала для экрана GNU.

Как tmux, так и экран предоставляют приложения с (более или менее) «одинаковыми» описаниями терминалов для упрощения соединения с разных терминалов. Предполагается, что программы tmux и screen обрабатывают различия между внутренним (TERM = screen) и внешним (xterm, linux и т. Д.). Таким образом, описание screen терминала было установлено «везде» (обычно по ncurses).

Есть некоторые отличия:

  • Экран GNU имеет очень старую проблему, представляющую собой «выдающуюся» функцию (которая технически не является определенной функцией терминала, а скорее абстракцией для удобства приложений curses). tmux не имеет такого ограничения. Но улучшенный TERM = tmux не обязательно «везде».
  • Экран GNU имеет функцию для использования описаний гибридных терминалов. Учитывая внешний TERM = xterm и существование «screen.xterm», он выберет значение для внутреннего значения TERM. (см., например, базу данных терминала ). tmux этого не делает.

Начиная с tmux 2.1 вы можете использовать tmux terminfo :

«default-terminal» теперь является параметром сеанса. Кроме того, если этот параметр установлен на «screen- *», тогда эмулируйте, что делает экран. Если выделены курсивы, это может быть установлено как «tmux», но это все еще нова и не обязательно поддерживается на всех платформах с более старыми установками ncurses