2

Так что я уже несколько недель живу с этой проблемой, надеясь, что, если я просто позволю этому случиться достаточно, я выясню основную причину. Неудачно.

tmux в bash в gnome-терминал в XMonad на Ubuntu 14.04.1 LTS (чистая установка). та же ошибка в том, что вместо XMonad я использую vanilla Unity (даже чистый установлен).

Кажется, что время от времени что-то печатает символ u'0x001b ', наложенный на символ'] 'в строке "] 112", вместо того, чтобы распознавать это как escape, за которым следуют некоторые числа, tmux печатает его дословно в (random) положение на экране. В последнее время строка «] 112» также начала появляться без символа Юникод очень редко. Похоже, что если символы выходят за пределы строки vim, замена первого иногда может оставить другие нетронутыми.

Все, что вызывает перерисовку прямоугольника, содержащего символ Юникода, избавляется от всей их последовательности. В Vim я могу удалить каждый отдельный символ в строке «] 112», как если бы он был на самом деле. Простое изменение их цветов, например, путем наведения курсора на них в vim, не избавляет от них.

У меня недостаточно репутации, чтобы публиковать изображения, но я покажу небольшой скринкаст о том, как выглядит проблема: http://www.brunobeltran.com/junkdump/tmux_error.mkv

Ниже мой .tmux.conf. Я играл с разными значениями времени побега, но безрезультатно. Кроме того, удаление мышиного материала не помогает.

Любая идея или вещи, которые можно попробовать, будет принята с благодарностью!


# 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

2 ответа2

2

Согласно полезному вкладу Эгмонта Коблингера в багтрекер (https://bugs.launchpad.net/ubuntu/+source/gnome-terminal/+bug/1435905), похоже, что эта ошибка была исправлена в апстриме.

Ошибка, по-видимому, была вызвана отсутствием поддержки в libvte OSC 112, escape-символа "сбросить цвет курсора". Вероятно, поэтому Джефф заметил ошибку после установки соляризации. И терминатор, и gnome-терминал используют libvte, поэтому одно и то же исправление должно применяться к обоим.

Просто установите последнюю версию libvte (libvte-2.90-9/utopic) из утопических репозиториев, добавив строки

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

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

в файл

/etc/apt/sources.list

(требует корневых привилегий).

Затем попросите apt установить только libvte-2.90-9 из утопического репозитория, выполнив

~# apt-get update

с последующим

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

Это должно исправить проблему в Ubuntu Trusty. Старые версии Ubuntu могут бороться с проблемами зависимости, это трудно понять.

0

Об этом также сообщается на GitHub. Размещение следующей строки в файле .tmux.conf решает проблему до тех пор, пока libvte не будет обновлен.

set-option -g terminal-overrides ',xterm*:Cr=\E]12;gray\007'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .