Brak podświetlania składni w tmux

17

Po zainstalowaniu tmuxw iTerm 2. (build 3.0.13) Kiedy wykonać vimw tmux, podświetlanie składni wygląda następująco.

bez podświetlania składni

Ale poza Tmuxem podświetlanie składni wygląda dobrze.

zwykłe podświetlanie składni

Moje $TERMwewnętrzne i zewnętrzne tmux to xterm-256color. Dodałem również

set -g default-terminal "screen-256color"

w .tmux.confi dodano tę

set t_Co=256
set t_AB=m
set t_AF=m
if &term =~ '256color'
    set t_ut=
endif

w .vimrc.

Próbowałem też tmux -2dowodzić i czytałem te pytania.

stracić vim colorscheme w trybie tmux

Niepoprawne kolory z vimem w iTerm2 przy użyciu Solarized

Jest to problem tmux, vimczy mojej konfiguracji?

EDYTOWAĆ:

Mój .vimrcw GitHub Gist

https://gist.github.com/sohnryang/3c63397f332f2e30c7d7b2a83c3c9f52

sohnryang
źródło
Co stanie się po uruchomieniu tmux z -2opcji: tmux -2. Najlepiej gdy nie ma sesji w tmux.
grodzik
Użyłem tmux -2, ale problem jest taki sam.
sohnryang
Czy możesz udostępnić całość .vimrc?
grodzik
1
@sohnryang, jakiej części „może nie powinieneś” nie rozumiesz?
muru
1
Spróbuj wykonać następujące kroki . Masz wiele wtyczek, więc być może jedna z nich przeszkadza.
Martin Tournoij

Odpowiedzi:

8

Cóż, sam rozwiązałem problem.

jak skomentował @ Carpetsmoker ♦, zacząłem podejrzewać, że mój .vimrcproblem. Przeczytałem to pytanie i zacząłem vim z tym poleceniem w tmux.

vim -u NONE -U NONE -N ~/.vimrc

Po uruchomieniu vima z powyższym poleceniem, uruchomiłem to polecenie w vimie.

:syn on
:colorscheme solarized8_dark

Podkreśliły one mój .vimrcplik. Więc zacząłem debugować mój .vimrc.

Krótko mówiąc, set termguicolorsbył problem. Gdybym uruchomił vima z set termguicolorskomentarzem .vimrc, mógłbym zobaczyć poprawione podświetlanie składni w tmux.

sohnryang
źródło
Miałem ten sam problem. byłoby wspaniale zacząć termguicolorspracę nad tmux
Filype
4

Z podręcznika vim: :h termguicolorszaleca czytanie:h xterm-true-color

Sometimes setting 'termguicolors' is not enough and one has to set the |t_8f|
and |t_8b| options explicitly.  [ ... these are]  only set [to some default] when `$TERM` is `xterm`.

Używam warunku podobnego do poniższego:

if &term =~# '256color' && ( &term =~# '^screen'  || &term =~# '^tmux' )
    let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
    let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
    set termguicolors
endif
ixil
źródło
3

Właściwie to sprawiłem, że działa dobrze termguicolors. Oto co zrobiłem 1. w moim ~ / .bash_profile umieściłem to:

export TERM=xterm-256color

i w moim ~ / .vimrc miałem to

syntax enable
colorscheme Spacegray

set termguicolors

i działało idealnie! odniesienie

abbood
źródło
: syn on: colorscheme Spacegray: ustaw termguicolors
abbood