Sem destaque de sintaxe no tmux

16

Eu instalei tmuxem iTerm 2. (criação de 3.0.13) Quando eu executar vimem tmux, destaque de sintaxe se parece com isso.

sem destaque de sintaxe

Mas fora do tmux, o destaque da sintaxe parece bom.

realce de sintaxe comum

Meu $TERMtmux interno e externo é xterm-256color. Eu também adicionei

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

no .tmux.confe adicionou-

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

no .vimrc.

Eu também tentei tmux -2comandar e ler estas perguntas.

perde o esquema de cores do vim no modo tmux

Cores incorretas com o vim no iTerm2 usando Solarized

É este um problema de tmux, vimou a minha configuração?

EDITAR:

Meu .vimrcno GitHub Gist

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

sohnryang
fonte
O que vai acontecer quando você começar o seu tmux com -2opção: tmux -2. De preferência quando não há sessões no tmux.
Grdzik
Eu usei tmux -2, mas o problema é o mesmo.
sohnryang
Você poderia compartilhar todo .vimrc?
Grdzik
11
@sohnryang que parte de "talvez você não deva" não entende?
muru
11
Tente seguir estas etapas . Você tem um monte de plugins; talvez um deles esteja interferindo.
Martin Tournoij

Respostas:

8

Bem, eu resolvi o problema sozinho.

como @ Carpetsmoker ♦ comentou, comecei a suspeitar que o meu .vimrcé um problema. Eu li esta pergunta e comecei o vim com este comando dentro do tmux.

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

Após iniciar o vim com o comando acima, executei este comando dentro do vim.

:syn on
:colorscheme solarized8_dark

Estes destacaram meu .vimrcarquivo. Então, eu comecei a depurar o meu .vimrc.

Para encurtar a história, set termguicolorsfoi o problema. Se eu executei o vim com set termguicolorscomentários .vimrc, eu poderia ver a sintaxe corrigida destacada no tmux.

sohnryang
fonte
Eu tive o mesmo problema. seria ótimo termguicolorstrabalhar no tmux embora
Filype
4

No manual do vim: :h termguicolorsrecomenda a leitura: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`.

Eu uso uma condição semelhante à abaixo:

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
fonte
3

Na verdade, eu fiz isso funcionar muito bem termguicolors. Isto é o que eu fiz 1. no meu ~ / .bash_profile eu coloquei isto:

export TERM=xterm-256color

e dentro do meu ~ / .vimrc eu tinha esse

syntax enable
colorscheme Spacegray

set termguicolors

e funcionou perfeitamente! referência

abbood
fonte
: syn on: colorscheme Spacegray: set termguicolors
abbood