Jak zmienić nazwę panelu w tmux?


119

Jak zmienić nazwę okienka tmux?

Odpowiedzi:


186

Masz na myśli okno tmux? Ctrl + b + ,jeśli masz Cb jako prefiks wysyłania (jest to domyślnie)

Również C-b :rename-window <new name>i tmux rename-window <new name>pracuj.

Jak wiem, nie możesz zmienić nazwy okienka


Kiedy zmieniam nazwę bieżącego okna, nie widzę, co piszę, czy jest to ustawienie domyślne? Czy to z powodu mojej konfiguracji? Chociaż myślę, że moja konfiguracja nie przeszkadza w tmuxpokazaniu tego.
zyy,

Aby wyjaśnić, to może zmienić nazwę panelu, a to jest potrzebne, gdy przypadkowo Wyjście binarne psuje go. Odpowiedź @ Mapad rozwiązuje ten problem.
fuzzyTew

W jaki sposób zmiana nazwy okna, gdy pojawi się pytanie o okienko zmiany nazwy, staje się akceptowaną odpowiedzią.
XMAN,

który jest przywracany za każdym razemls
anilbey

2
@anilbey To samo tutaj. Rozwiązaniem jestset-option -g allow-rename off
joeytwiddle

36

tak, możesz zmienić nazwy paneli, a nie tylko nazwy okien zaczynające się od tmux> = 2.3. Po prostu wpisz w powłoce:

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

może być konieczne dodanie następujących elementów do pliku .tmux.conf, aby wyświetlić nazwy paneli:

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

możesz także automatycznie przypisać nazwę:

set -g pane-border-format "#P: #{pane_current_command}"

Czy istnieje sposób na umieszczenie argumentów polecenia w formacie obramowania okienka? Och, jest podobny problem na githubie.
konstunn

16

Dla tych, którzy skrypty tmux, istnieje polecenie o nazwie rename-window np

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

1
W moim przypadku było coś takiego: tmux rename-window -t 9 my-project.
borracciaBlu

8

Dla tych, którzy chcą łatwo zmienić nazwy swoich szyb, oto co mam w swoim .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

Panele są automatycznie nazywane wraz z indeksem, nazwą komputera i bieżącym poleceniem. Aby zmienić nazwę komputera, możesz uruchomić, <C-b>Rco poprosi o wprowadzenie nowej nazwy.

* Zmiana nazwy okienka działa tylko wtedy, gdy jesteś w powłoce.


4

Również podczas tworzenia skryptów możesz określić nazwę podczas tworzenia okna za pomocą -n <window name>. Na przykład:

# 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

Najłatwiejszą opcją dla mnie była zamiast tego zmiana nazwy terminala. Zobacz: /superuser/362227/how-to-change-the-title-of-the-mintty-window

W tej odpowiedzi wspominają o zmodyfikowaniu zmiennej PS1. Uwaga: moja sytuacja była specyficzna dla Cygwin.

TL; DR Umieść to w swoim pliku .bashrc:

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

Umieść to w swoim pliku .tmux.conf lub w podobnym formacie:

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

Następnie możesz zmienić tytuł panelu, wpisując w konsoli:

settitle titlename

0

Możesz dostosować tytuł panelu, ustawiając obramowanie panelu w tmux.conf, na przykład w ten sposób:

###############
# 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

Gdzie pane_index, pane_title i pane_current_path to zmienne dostarczane przez samo tmux.

Po ponownym załadowaniu konfiguracji lub uruchomieniu nowej sesji tmux możesz ustawić tytuł bieżącego panelu w następujący sposób:

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

Jeśli we wszystkich panelach są uruchomione jakieś procesy, więc nie możesz użyć wiersza poleceń, możesz również wpisać polecenia po naciśnięciu przedrostka bind (domyślnie Cb) i dwukropka (:) bez „tmux” na początku Komenda:

select-pane -T "fancy pane title"
#or:
select-pane -t paneIndexInteger -T "fancy pane title"
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.