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


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.


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

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


: syn on: colorscheme Spacegray: set termguicolors
abbood
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.