Środowisko:
- Fedora 25 (4.9.12-200.fc25.x86_64)
- Terminal GNOME 3.22.1 Korzystanie z wersji VTE 0.46.1 + GNUTLS
- VIM - Vi IMproved 8.0 (12 września 2016, opracowano 22 lutego 2017 16:26:11)
- tmux 2.2
Niedawno zacząłem używać tmux i zauważyłem, że kolory w Vimie zmieniają się w zależności od tego, czy działam w tmuxie, czy poza nim. Poniżej zrzuty ekranu Vima na zewnątrz (po lewej) i wewnątrz (po prawej) tmux podczas oglądania Git diff:
Moja TERMzmienna to
- Poza tmux:
xterm-256color - Wewnątrz tmux:
screen-256color
Vim zgłasza te typy terminali zgodnie z oczekiwaniami (via :set term?):
- Poza tmux:
term=xterm-256color - Wewnątrz tmux:
term=screen-256color
Vim informuje również, że oba wystąpienia działają w trybie 256-kolorowym (przez :set t_Co?):
- Poza tmux:
t_Co=256 - Wewnątrz tmux:
t_Co=256
Istnieje wiele podobnych pytań dotyczących uruchamiania Vima w trybie 256 kolorów w tmux (najlepsza odpowiedź, jaką znalazłem, jest tutaj ), ale nie sądzę, że to mój problem, biorąc pod uwagę powyższe informacje.
Mogę zduplikować problem poza tmux, jeśli uruchomię Vima z typem terminala ustawionym na screen-256color:
$ TERM=screen-256color vim
To sprawia, że wierzę, że istnieje tylko pewna różnica między możliwościami terminala xterm-256colora screen-256colorterminalem, która powoduje różnicę w kolorze. Co prowadzi do pytania postawionego w tytule: co konkretnie w możliwościach terminali powoduje, że kolory Vima są różne? Widzę różnice między uruchomieniem :set termcapw tmuxie i poza nim, ale jestem ciekawy, które zmienne faktycznie powodują różnicę w zachowaniu.
Niezależnie od poprzedniego pytania, czy możliwe jest, aby kolory Vima były spójne podczas uruchamiania w tmuxie lub poza nim? Niektóre rzeczy, które próbowałem obejmują:
- Jawne ustawienie domyślnego terminala, z którego korzysta tmux,
~/.tmux.confna różne wartości (niektóre wbrew poradom tmux FAQ ):
ustaw -g domyślny terminal „screen-256color”
ustaw -g domyślny terminal „xterm-256color”
ustaw -g default-terminal „screen.xterm-256color”
ustaw -g domyślny terminal „tmux-256color”
- Uruchamianie tmux za pomocą
tmux -2.
We wszystkich przypadkach Vim nadal wyświetlał różne kolory w tmuxie.
xterm-256colorwersji (wyszukaj „38; 5;” w pliku), ale nie mogę w screen-256color. Np. Gdziekolwiek jest \e[38;5;81min xterm-256color(kolor nr 81 z 256-kolorowej palety, środkowy niebieski odcień), screen-256colorzawiera \e[34mzamiast tego (standardowy niebieski z 8-kolorowej palety). Tak więc główne pytanie brzmi: dlaczego vim nie używa 256-kolorowej palety w przypadku TERM=screen-256color.
xterm-256colorwersja wydaje się drukować ekran dwukrotnie, najpierw przy użyciu starszych kolorów, a następnie z 256-paletową paletą kolorów. Wyszukaj np. „F1” w pliku, znajdziesz dwa dopasowania xterm-256color, pierwszy z \e[34mkolorem, drugi z \e[38;5;81m. Nie wiem o co tu chodzi.
set -g default-terminal "screen.xterm-256color"w ~/.tmux.confi przeładować config w tmux (<Cs>: source plik ~ / .tmux.conf) pracował dla mnie (wydanie podświetlenia). thx


script, uruchomićvim, wyjść,vima następnie zamknąćscriptpowłokę i dołączyć wynikowytypescriptplik? Następnie powtórz te same kroki zTERM=screen-256color vim.