tmux imprimindo u'0x001b 'e “] 112” aleatoriamente

2
Então, eu tenho vivido com esse problema por várias semanas, esperando que, se eu deixar isso acontecer o suficiente, eu descubra o gatilho subjacente. Sem sorte.

tmux no bash no gnome-terminal no XMonad no Ubuntu 14.04.1 LTS (instalação limpa). mesmo bug quando quando em vez de XMonad eu uso vanilla Unity (mesmo limpo instalado).

Parece que de vez em quando algo está imprimindo o caractere u'0x001b ', sobreposto a um caractere'] 'na string "] 112" ao invés de reconhecer isso como escape seguido por alguns números, o tmux o imprime textualmente para uma posição (aleatória) na tela. Recentemente, a string "] 112" também começou a aparecer sem o caractere unicode muito ocasionalmente. Parece que, se os caracteres terminarem no final de uma linha vim, a substituição da primeira pode às vezes deixe os outros intactos.

Qualquer coisa que force um redesenho do retângulo que contém o caractere unicode se livrará de toda a sequência deles. No Vim, eu posso deletar cada caractere individual na string "] 112" como se estivesse realmente lá, no entanto. Simplesmente mudando suas cores, por exemplo posicionando o cursor sobre eles no vim, não se livra deles.

Eu não tenho reputação suficiente para postar imagens, mas vou apresentar um pequeno screencast de como é o problema: link

Abaixo está o meu arquivo .tmux.conf. Eu joguei com vários valores para o tempo de fuga, sem sucesso. Além disso, remover o material do mouse não ajuda.

Qualquer ideia ou coisas para tentar seria muito apreciada!


# 0 is too far from 1
set -g base-index 1

# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on

set -g default-terminal screen-256color
set -g status-keys vi
set -g history-limit 10000

setw -g mode-keys vi
setw -g mode-mouse on
setw -g mouse-resize-pane on
setw -g mouse-select-pane on
setw -g mouse-select-window on
setw -g monitor-activity on

bind-key v split-window -h
bind-key s split-window -v
bind-key J resize-pane -D 5
bind-key K resize-pane -U 5
bind-key H resize-pane -L 5
bind-key L resize-pane -R 5
bind-key M-j resize-pane -D
bind-key M-k resize-pane -U
bind-key M-h resize-pane -L
bind-key M-l resize-pane -R

# Vim style pane selection
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# Use Alt-vim keys without prefix key to switch panes
bind -n M-h select-pane -L
bind -n M-j select-pane -D
bind -n M-k select-pane -U
bind -n M-l select-pane -R

# Use Alt-arrow keys without prefix key to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

# Shift arrow to switch windows
bind -n S-Left  previous-window
bind -n S-Right next-window

# No delay for escape key press
set -sg escape-time 0

# copy to clipboard in sane way on linux with xclip
bind -t vi-copy y copy-pipe 'xclip -in -selection clipboard'

# Reload tmux config
bind r source-file ~/.tmux.conf

# THEME
set -g status-bg black
set -g status-fg white
set -g window-status-current-bg white
set -g window-status-current-fg black
set -g window-status-current-attr bold
set -g status-interval 60
set -g status-left-length 30
set -g status-left '#[fg=green](#S) #(whoami)'
set -g status-right '#[fg=yellow]#(cut -d " " -f 1-3 /proc/loadavg)#[default] #[fg=white]%H:%M#[default]'

## my additions start here
# fix pgup/pgdn issues
#set -ga terminal-overrides ',xterm*:smcup@:rmcup@'
# Set up workflow for CJW Lab
#
new  -n Shell  "/usr/bin/env bash"
splitw -h -p 50 -t 0 "bash"
neww -n Matlab "/opt/MATLAB/R2014b/bin/matlab -nodesktop -nosplash"
splitw -h -p 50 -t 0 "bash"
neww -n Mathematica  "/opt/Wolfram/Mathematica/10.0/Executables/math"
splitw -h -p 50 -t 0 "bash"
neww -n Asciiquarium "~/bin/asciiquarium"
neww -n Media  "/usr/bin/ncmpcpp"

# Fix my leader to be Ctrl-q
unbind-key C-b
set -g prefix 'C-q'
bind-key 'C-q' send-prefix

    
por brunobeltran0 13.01.2015 / 21:51

2 respostas

2

Por contribuição útil de Egmont Koblinger no bugtracker ( link ), parece que esse bug foi corrigido pelo autor.

O bug parece ter sido causado pela falta de suporte do libcte para o OSC 112, o caractere de escape "reset cursor color". Provavelmente é por isso que Jeff percebeu o bug depois de instalar o Solarized. Tanto o terminador quanto o gnome-terminal usam o libvte, então a mesma correção deve se aplicar a ambos.

Basta instalar a última versão do libvte (libvte-2.90-9 / utopic) dos repositórios utópicos adicionando as linhas

deb http://us.archive.ubuntu.com/ubuntu utopic main restricted

deb http://extras.ubuntu.com/ubuntu utopic main

para o arquivo

/etc/apt/sources.list

(requer priveledges de raiz).

Em seguida, solicite que o apt instale apenas libvte-2.90-9 a partir dos repositórios utópicos executando um

~# apt-get update

seguido por

~# apt-get install libvte-2.90-9/utopic

Isso deve corrigir o problema no Ubuntu Trusty. Versões mais antigas do Ubuntu podem ter problemas de dependência, é difícil saber.

    
por 24.03.2015 / 19:30
0

Isso também é relatado no github . Colocar a seguinte linha no seu arquivo .tmux.conf resolve o problema até que o libvte seja atualizado.

set-option -g terminal-overrides ',xterm*:Cr=\E]12;gray
set-option -g terminal-overrides ',xterm*:Cr=\E]12;gray%pre%7'
7'
    
por 27.01.2016 / 09:36