tmux e problema de caractere de seqüência de controle

4

Eu tento redimensionar a janela do terminal a partir da linha de comando no meu MacOSX

Eu posso redimensionar a largura e a altura do terminal com o seguinte comando (Control Sequence Introducer CSI)

printf '\e[8;100;200t' "resize to 200x100

mas quando eu uso o tmux no meu terminal, o comando (printf '\ e [8; 100; 200t') não está mais funcionando

Qualquer sugestão seria apprecaited.

Aqui está o meu arquivo de configuração do tmux:

bind r source-file ~/.tmux.conf \; display "Reloaded!"  #Reload with ctrl-r
set-window-option -g mode-keys vi                       #copy-mode vim-like 
set -g prefix '                                         #prefix from ctrl-b to ctrl-a
unbind C-b                                              #allow ctrl-b for other things
set -sg escape-time 1                                   #quicker responses
bind ' send-prefix                                      #Pass on ctrl-a for other apps
set -g base-index 1                                     #Numbering of windows
setw -g pane-base-index 1                               #Numbering of Panes
bind \ split-window -v                                  #Split panes horizontal
bind v split-window -h                                  #Split panes vertically

unbind-key j
bind-key j select-pane -D # Similar to 'C-w j' to navigate windows in Vim
unbind-key k
bind-key k select-pane -U
unbind-key h
bind-key h select-pane -L
unbind-key l
bind-key l select-pane -R

unbind-key Left 
bind-key  Left resize-pane -L 10 
unbind-key Right 
bind-key  Right resize-pane -R 10 
unbind-key Up 
bind-key  Up resize-pane -U 10 

unbind-key Down 
bind-key  Down resize-pane -D 10 

set -g window-status-current-style fg=red
set -g default-command "reattach-to-user-namespace -l /bin/bash"
    
por Aron Lee 06.12.2017 / 02:06

1 resposta

3

A seqüência de escape está sendo interpretada pelo tmux e não está sendo passada para o programa terminal no qual o tmux está rodando. Para que ela passe, você precisa quebrar a seqüência de escape para dizer ao tmux para passar:

printf '\ePtmux;\e%s\e\' "${escape_sequence}"

onde escape_sequence é a sequência que você deseja que o tmux passe para o terminal.

Não há muita documentação para isso, mas evidências podem ser encontradas no arquivo CHANGES para a versão 1.5: link

    
por 06.12.2017 / 02:15

Tags