Як перейменувати панель у tmux?


Відповіді:


186

Ви маєте на увазі вікно tmux? Ctrl + b + ,якщо у вас є префікс Cb як відправлення (за замовчуванням)

Також C-b :rename-window <new name>і tmux rename-window <new name>працювати теж.

Як я знаю, ви не можете перейменувати панель


Перейменуючи поточне вікно, я не бачу, що я набираю, це за замовчуванням? Або це пов’язано з моєю конфігурацією? Хоча я думаю, що моя конфігурація не заважає tmuxпоказувати це.
zyy

Для уточнення можна перейменувати панель, і це потрібно, коли випадково бінарний вихід пошкоджує його. @ Відповідь Мапада вирішує це.
fuzzyTew

Як вікно перейменування, коли запитується область перейменування, стає прийнятою відповіддю.
XMAN

що повертається назад, коли виls
anilbey

2
@anilbey Те саме тут. Рішення для цьогоset-option -g allow-rename off
joeytwiddle

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}"

Чи є спосіб ввести аргументи команди у формат меж панелі? О, на Github є відповідне питання .
konstunn

15

Для цих сценаріїв tmux існує команда, яка називається rename-window так, наприклад

tmux rename-window -t <window> <newname>

У моєму випадку було що - щось на кшталт: 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

Найпростішим варіантом для мене було перейменування назви терміналу. Будь ласка, дивіться: /superuser/362227/how-to-change-the-title-of-the-mintty-window

У цій відповіді вони згадують про зміну змінної PS1. Зауважте: моя ситуація стосувалася цигуна.

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"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.