переименуйте tmux имя окна к prompt_command, ps1 или удаленное ssh имя хоста?

Я хотел бы смочь иметь свой tmux заголовок окна, автоматически переименованный к prompt_command, ps1 или просто имя хоста машины I ssh кому. открытие 9 окон маркировало "ssh", действительно бесполезно. Выполнение системного администратора работает, я открываю новые экраны и ssh вокруг к очень для ручного переименования их.

Одна вещь, которую я заметил, tmux обновления xterm заголовок окна, таким образом, я чувствую себя подобно ему, должен знать.

Какая-либо справка? Я даже был бы готов вернуться к screen если я мог бы получить эту функцию.

25
задан 21.04.2016, 16:55

1 ответ

Я не знаю ни о каком способе заставить его посмотреть на Ваш PS1 непосредственно.

Однако tmux понимает те же команды для определения имени окна как screen делает.

Таким образом, можно определить функцию как это в Вашем ~/.bashrc или ~/.zshrc:

settitle() {
    printf "\033k$1\033\\"
}

и затем звоните settitle отовсюду.

Например, Вы могли включать его в Ваш PS1 переменная, например.

PS1='$HOST:$PWD$(settitle $HOST:$PWD)$ '

или через PROMPT_COMMAND:

PROMPT_COMMAND='$(settitle $HOST:$PWD)'
# and don't change PS1

Теперь я понимаю, что Вы имеете tmux при работе рабочего стола, и Вы хотите ssh команды, чтобы иметь имя хоста, а не ssh, это намного легче.

Учитывая Вы добавили settitle к Вашему локальному ~/.bashrc, все, что Вы хотите сделать, добавляет это также:

ssh() {
    settitle "$*"
    command ssh "$@"
    settitle "bash"
}

Удар замены с zsh или что-то еще более соответствующее при необходимости.

15
ответ дан 07.12.2019, 09:36

Теги

Похожие вопросы