Немає підкреслення синтаксису в tmux


17

Я встановив tmuxв iTerm 2. (Build 3.0.13) Коли я виконую vimв tmux, підсвічування синтаксису виглядає приблизно так.

відсутність виділення синтаксису

Але поза tmux виділення синтаксису виглядає чудово.

звичайне виділення синтаксису

Моє $TERMвсередині і зовні tmux є xterm-256color. Я також додав

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

в .tmux.confі додав це

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

в .vimrc.

Я також спробував tmux -2командувати і прочитав ці питання.

втратити схему кольорів vim у режимі tmux

Неправильні кольори з vim в iTerm2 за допомогою Solarized

Є чи це проблемою tmux, vimчи моєї конфігурації?

Редагувати:

Мій .vimrcу GitHub Gist

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


Що станеться , коли ви почнете tmux з -2опцією: tmux -2. Переважно, коли в tmux немає сеансів.
grodzik

Я звик tmux -2, але проблема така ж.
sohnryang

Не могли б ви поділитися цілими .vimrc?
grodzik

1
@sohnryang, яку частину "можливо, ти не повинен" ти не розумієш?
муру

1
Спробуйте виконати ці кроки . У вас є багато плагінів, тому, можливо, один із них заважає.
Мартін Турноїй

Відповіді:


8

Ну, я вирішив проблему сам.

як @ Carpetsmoker ♦ прокоментував, я почав підозрювати, що це моя .vimrcпроблема. Я прочитав це питання і почав vim з цією командою всередині tmux.

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

Після запуску vim з команди вище, я запустив цю команду всередині vim.

:syn on
:colorscheme solarized8_dark

Вони виділили мій .vimrcфайл. Отже, я почав налагоджувати свою .vimrc.

Довга коротка історія, set termguicolorsбула проблема. Якщо я побіг vim із set termguicolorsпрокоментованими коментарями .vimrc, я міг би побачити виправлене підсвічування синтаксису в tmux.


У мене було те саме питання. Було б чудово termguicolorsпопрацювати над tmux
Філіпе

4

З посібника vim: :h termguicolorsрекомендує прочитати: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`.

Я використовую умову, подібну до наведеної нижче:

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

Я фактично змусив це працювати добре termguicolors. Це те, що я зробив 1. у своєму ~ / .bash_profile я поставив це:

export TERM=xterm-256color

і всередині мого ~ / .vimrc у мене було це

syntax enable
colorscheme Spacegray

set termguicolors

і це спрацювало чудово! довідник


: syn on: colorcheme Spacegray: встановити терміни-бігуни
abbood
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.