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


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.


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

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


: syn on: colorscheme Spacegray: ustaw termguicolors
abbood
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.