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.