Bagaimana cara mengganti nama panel di tmux?

119

Bagaimana cara mengganti nama panel tmux?

ovolax
sumber

Jawaban:

186

Maksud Anda jendela tmux? Ctrl + b + ,jika Anda memiliki Cb sebagai awalan kirim (ini secara default)

Juga C-b :rename-window <new name>dan tmux rename-window <new name>bekerja juga.

Seperti yang saya tahu, Anda tidak dapat mengganti nama panel

idej
sumber
Ketika saya mengganti nama jendela saat ini, saya tidak dapat melihat apa yang saya ketik, apakah itu secara default? Atau karena konfigurasi saya? Meskipun saya pikir konfigurasi saya tidak mencegah tmuxuntuk menampilkannya.
zyy
Untuk memperjelas, Anda dapat mengganti nama panel, dan ini diperlukan ketika keluaran biner secara tidak sengaja merusaknya. Jawaban @ Mapad menyelesaikan ini.
fuzzyTew
Bagaimana cara mengganti nama jendela, ketika panel ganti nama diminta- menjadi jawaban yang diterima.
XMAN
yang akan dikembalikan kapan pun Andals
anilbey
2
@anilbey Sama di sini. Solusi untuk itu adalahset-option -g allow-rename off
joeytwiddle
36

ya, Anda dapat mengubah nama panel, dan tidak hanya nama jendela yang dimulai dengan tmux> = 2.3. Cukup ketik yang berikut ini di shell Anda:

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

Anda mungkin perlu menambahkan berikut ini ke .tmux.conf Anda untuk menampilkan nama panel:

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

Anda juga dapat menetapkan nama secara otomatis:

set -g pane-border-format "#P: #{pane_current_command}"
Mapad
sumber
Apakah ada cara untuk memasukkan args dari sebuah perintah ke dalam format perbatasan panel? Oh, ada masalah terkait di github.
konstunn
15

Untuk skrip tmux itu, ada perintah bernama rename-window mis

tmux rename-window -t <window> <newname>
DenLilleMand
sumber
Dalam kasus saya itu sesuatu seperti: tmux rename-window -t 9 my-project.
borracciaBlu
8

Bagi mereka yang ingin dengan mudah mengganti nama panel mereka, inilah yang saya miliki di saya .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

Panel secara otomatis dinamai dengan indeksnya, nama mesin dan perintah saat ini. Untuk mengubah nama mesin, Anda dapat menjalankan <C-b>Ryang akan meminta Anda memasukkan nama baru.

* Penggantian nama panel hanya berfungsi saat Anda berada di shell.

raman
sumber
4

Juga saat membuat skrip, Anda dapat menentukan nama saat membuat jendela dengan -n <window name>. Sebagai contoh:

# 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'
rotarydial
sumber
3

Pilihan termudah bagi saya adalah mengganti nama terminal. Silakan lihat: /superuser/362227/how-to-change-the-title-of-the-mintty-window

Dalam jawaban ini, mereka menyebutkan untuk memodifikasi variabel PS1. Catatan: situasi saya khusus untuk cygwin.

TL; DR Taruh ini di file .bashrc Anda:

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

Taruh ini di file .tmux.conf Anda, atau pemformatan serupa:

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

Kemudian Anda dapat mengubah judul panel dengan mengetik ini di konsol:

settitle titlename
Todd
sumber
0

Anda dapat mengatur judul panel dengan mengatur batas panel di tmux.conf misalnya seperti ini:

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

Di mana pane_index, pane_title dan pane_current_path adalah variabel yang disediakan oleh tmux itu sendiri.

Setelah memuat ulang konfigurasi atau memulai sesi tmux baru, Anda dapat menyetel judul panel saat ini seperti ini:

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

Jika semua panel menjalankan beberapa proses, sehingga Anda tidak dapat menggunakan baris perintah, Anda juga dapat mengetikkan perintah setelah menekan awalan bind (Cb secara default) dan titik dua (:) tanpa "tmux" di depan perintah:

select-pane -T "fancy pane title"
#or:
select-pane -t paneIndexInteger -T "fancy pane title"
Tech Nomad
sumber