Как переименовать панель в tmux?

Ответы:

186

Вы имеете в виду окно tmux? Ctrl + b + ,если у вас есть префикс отправки Cb (по умолчанию)

Тоже C-b :rename-window <new name>и tmux rename-window <new name>работать тоже.

Насколько я знаю, вы не можете переименовать панель

idej
источник
Когда я переименовываю текущее окно, я не вижу, что набираю, это по умолчанию? Или это из-за моей конфигурации? Хотя, думаю, моя конфигурация не мешает это tmuxпоказать.
zyy 05
Чтобы прояснить, вы можете переименовать панель, и это необходимо, когда случайно двоичный вывод повредит ее. Ответ @ Mapad решает эту проблему.
fuzzyTew 06
Как окно переименования при запросе панели переименования становится принятым ответом.
XMAN
который возвращается всякий раз, когда выls
anilbey
2
@anilbey То же самое и здесь. Решение этой set-option -g allow-rename off
проблемы
36

да, вы можете переименовывать имена панелей, а не только имена окон, начинающиеся с tmux> = 2.3. Просто введите в свою оболочку следующее:

printf '\033]2;%s\033\\' 'title goes here'

вам может потребоваться добавить следующее в ваш .tmux.conf для отображения имен панелей:

# Enable names for panes
set -g pane-border-status top

вы также можете автоматически присвоить имя:

set -g pane-border-format "#P: #{pane_current_command}"
Mapad
источник
Есть ли способ поместить аргументы команды в формат границы панели? О, на github есть соответствующая проблема .
konstunn
16

Для тех, кто пишет tmux, есть команда, rename-window например

tmux rename-window -t <window> <newname>
DenLilleMand
источник
1
В моем случае было что - то вроде: tmux rename-window -t 9 my-project.
borracciaBlu
8

Для тех, кто хочет легко переименовать свои панели, это то, что у меня есть в моем .tmux.conf

set -g default-command '                      \
function renamePane () {                      \
  read -p "Enter Pane Name: " pane_name;      \
  printf "\033]2;%s\033\\r:r" "${pane_name}"; \
};                                            \
export -f renamePane;                         \
bash -i'
set -g pane-border-status top
set -g pane-border-format "#{pane_index} #T #{pane_current_command}"
bind-key -T prefix R send-keys "renamePane" C-m

Панели автоматически получают имена с указанием их индекса, имени компьютера и текущей команды. Чтобы изменить имя машины, вы можете запустить <C-b>Rее, и вам будет предложено ввести новое имя.

* Переименование панели работает только когда вы находитесь в оболочке.

раман
источник
4

Также при написании сценария вы можете указать имя при создании окна с помощью -n <window name>. Например:

# variable to store the session name
SESSION="my_session"

# set up session
tmux -2 new-session -d -s $SESSION

# create window; split into panes
tmux new-window -t $SESSION:0 -n 'My Window with a Name'
поворотный циферблат
источник
3

Самым простым вариантом для меня было вместо этого переименовать название терминала. См.: Https://superuser.com/questions/362227/how-to-change-the-title-of-the-mintty-window

В этом ответе они упоминают об изменении переменной PS1. Примечание: моя ситуация была специфичной для cygwin.

TL; DR Поместите это в свой файл .bashrc:

function settitle() {
      export PS1="\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n$ "
      echo -ne "\e]0;$1\a"
}

Поместите это в свой файл .tmux.conf или в аналогичное форматирование:

set -g pane-border-status bottom
set -g pane-border-format "#P #T #{pane_current_command}"

Затем вы можете изменить заголовок панели, набрав это в консоли:

settitle titlename
Тодд
источник
0

Вы можете настроить заголовок панели, установив границу панели в tmux.conf, например, следующим образом:

###############
# pane border #
###############
set -g pane-border-status bottom
#colors for pane borders
setw -g pane-border-style fg=green,bg=black
setw -g pane-active-border-style fg=colour118,bg=black
setw -g automatic-rename off
setw -g pane-border-format ' #{pane_index} #{pane_title} : #{pane_current_path} '
# active pane normal, other shaded out​
setw -g window-style fg=colour28,bg=colour16
setw -g window-active-style fg=colour46,bg=colour16

Где pane_index, pane_title и pane_current_path - переменные, предоставляемые самим tmux.

После перезагрузки конфигурации или запуска нового сеанса tmux вы можете установить заголовок текущей панели следующим образом:

tmux select-pane -T "fancy pane title";
#or
tmux select-pane -t paneIndexInteger -T "fancy pane title";

Если на всех панелях запущены какие-то процессы, поэтому вы не можете использовать командную строку, вы также можете вводить команды после нажатия префикса bind (по умолчанию Cb) и двоеточия (:) без «tmux» перед команда:

select-pane -T "fancy pane title"
#or:
select-pane -t paneIndexInteger -T "fancy pane title"
Технический кочевник
источник