42

Я настроил приглашение ZSH с помощью oh-my-zsh, чтобы сделать его более читабельным и добавить информацию о git, если я нахожусь в репозитории.

Пример :
bob@inf [~/docs] %
bob@inf [~/src/nicest] master % (в репозитории git)

Это работает хорошо, но у меня есть некоторые ошибки с tmux и именем окна. Он по-прежнему отображает бессмысленное значение, и я не могу отключить его с automatic-rename off (оно просто не работает, имя окна меняется после каждой команды), для первого примера tmux использует ~/docs для имени окна.

Я не уверен, как я могу это исправить, я хотел бы сохранить мой zsh подсказку, как есть, если можно внести изменения, но хотел бы понять, в чем проблема?

Другим решением может быть переопределение команды settile (из этого ответа), но я не уверен, как это сделать правильно.

4 ответа4

75

Я взглянул на о-о-о-зш и нашел вероятного подозреваемого.

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

  • (непосредственно перед отображением приглашения оболочки)
    крайняя левая часть «сжатого тильды» пути текущего рабочего каталога (.. за которым следуют последние 13 символов или весь путь, если он меньше 15 символов), и
  • (непосредственно перед началом команды)
    первое «слово» команды «о запуске» (не считая ssh , sudo и некоторых других).

Похоже, это работает для вас (вы сказали, что имя вашего окна изменилось на ~/docs когда вы были в этом каталоге). Если вы хотите отключить это автоматическое переименование, вы можете полностью отключить его, установив для параметра DISABLE_AUTO_TITLE значение true в вашем .zshrc:

DISABLE_AUTO_TITLE=true

Если вы просто установите это в интерактивной оболочке, вы получите пустую строку для имени текущего окна, но oh-my-zsh перестанет обновлять окно перед каждым приглашением и командой в этом экземпляре оболочки (это должно быть в ваш .zshrc чтобы повлиять на все новые экземпляры оболочки).

27

Я знаю, что ответ выше дает вам решение, но другое - просто добавить эту опцию в ~/.tmux.conf

set-option -g allow-rename off
5

Я столкнулся с той же проблемой, которая заключается в том, что имя окна tmux было изменено даже при установке в .tmux.conf:

set-window-option -g automatic-rename off

Спасибо Крис ответ. Имя моего окна tmux не было автоматически переименовано после того, как я изменил:

set -g default-terminal "screen-256color"

чтобы:

set -g default-terminal "xterm-256color"
0

Если вы хотите отключить автоматическое переименование только для определенного окна, вы можете использовать:

 set -t [WINDOW_NUMBER] automatic-rename off

Отключите автоматическое переименование в определенном окне в другом сеансе:

 set -t [SESSION]:[WINDOW_NUMBER] automatic-rename off

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .