Como renomear um painel no tmux?


119

Como renomear um painel em tmux?

Respostas:


186

Você quer dizer janela do tmux? Ctrl + b + ,se você tiver Cb como prefixo de envio (é por padrão)

Também C-b :rename-window <new name>e tmux rename-window <new name>trabalho também.

Como eu sei, você não pode renomear o painel


Quando estou renomeando a janela atual, não consigo ver o que estou digitando. Isso é o padrão? Ou é devido à minha configuração? Embora eu ache que minha configuração não está impedindo tmuxde mostrar isso.
zyy

Para esclarecer, você pode renomear um painel, e isso é necessário quando a saída binária acidentalmente o corrompe. A resposta de @ Mapad resolve isso.
fuzzyTew

Como renomear a janela, quando o painel de renomeação é solicitado, se torna a resposta aceita.
XMAN

que é revertido sempre que vocêls
anilbey

2
@anilbey O mesmo aqui. A solução para isso éset-option -g allow-rename off
joeytwiddle

36

sim, você pode renomear nomes de painéis, e não apenas nomes de janelas começando com tmux> = 2.3. Basta digitar o seguinte em seu shell:

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

pode ser necessário adicionar o seguinte ao seu .tmux.conf para exibir os nomes dos painéis:

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

você também pode atribuir um nome automaticamente:

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

Existe uma maneira de colocar args de um comando no formato de borda do painel? Oh, há um problema correspondente no github.
Konstunn

15

Para aqueles que fazem script do tmux, existe um comando chamado rename-window assim, por exemplo

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

No meu caso foi algo como: tmux rename-window -t 9 my-project.
borracciaBlu

8

Para aqueles que desejam renomear facilmente seus painéis, isto é o que eu tenho em meu .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

Os painéis são nomeados automaticamente com seu índice, nome da máquina e comando atual. Para alterar o nome da máquina, você pode executar o <C-b>Rque solicitará que você insira um novo nome.

* A renomeação do painel só funciona quando você está em um shell.


4

Além disso, durante o script, você pode especificar um nome ao criar a janela com -n <window name>. Por exemplo:

# 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

A opção mais fácil para mim foi renomear o título do terminal. Consulte: /superuser/362227/how-to-change-the-title-of-the-mintty-window

Nesta resposta, mencionam modificar a variável PS1. Nota: minha situação era particular para o cygwin.

TL; DR Coloque isso em seu arquivo .bashrc:

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

Coloque isso em seu arquivo .tmux.conf ou em uma formatação semelhante:

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

Em seguida, você pode alterar o título do painel digitando no console:

settitle titlename

0

Você pode ajustar o título do painel definindo a borda do painel no tmux.conf, por exemplo:

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

Onde pane_index, pane_title e pane_current_path são variáveis ​​fornecidas pelo próprio tmux.

Depois de recarregar a configuração ou iniciar uma nova sessão tmux, você pode definir o título do painel atual como este:

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

Se todos os painéis têm alguns processos em execução, então você não pode usar a linha de comando, você também pode digitar os comandos após pressionar o prefixo bind (Cb por padrão) e dois pontos (:) sem ter "tmux" na frente do comando:

select-pane -T "fancy pane title"
#or:
select-pane -t paneIndexInteger -T "fancy pane title"
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.