Keine Syntaxhervorhebung in tmux


16

Ich installierte tmuxin iTerm 2. (Build 3.0.13) Wenn ich ausführen vimin tmux, Syntax sieht wie folgt hervorgehoben.

Keine Syntaxhervorhebung

Außerhalb von tmux sieht die Syntaxhervorhebung jedoch gut aus.

gewöhnliche Syntaxhervorhebung

Mein $TERMinnerer und äußerer tmux ist xterm-256color. Ich habe auch hinzugefügt

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

in .tmux.confund fügte dies hinzu

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

in .vimrc.

Ich habe auch versucht, tmux -2Befehle zu erteilen und diese Fragen zu lesen.

Vim Farbschema im tmux-Modus verlieren

Falsche Farben mit vim in iTerm2 mit Solarized

Ist das ein Problem tmux, vimoder meine Konfiguration?

BEARBEITEN:

Mein .vimrcin GitHub Gist

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


Was passiert , wenn Sie Ihre tmux mit Start - -2Option: tmux -2. Am besten, wenn es keine Sessions in tmux gibt.
Grodzik

Ich habe verwendet tmux -2, aber das Problem ist das gleiche.
Sohnryang

Könnten Sie das Ganze teilen .vimrc?
Grodzik

1
@sohnryang welchen teil von "vielleicht solltest du nicht" verstehst du nicht?
muru

1
Führen Sie die folgenden Schritte aus . Sie haben eine ganze Reihe von Plugins, von denen möglicherweise eines stört.
Martin Tournoij

Antworten:


8

Nun, ich habe das Problem alleine gelöst.

Als @ Carpetsmoker ♦ kommentierte, begann ich zu vermuten, dass mein .vimrcProblem ist. Ich habe diese Frage gelesen und vim mit diesem Befehl in tmux gestartet.

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

Nachdem ich vim mit dem obigen Befehl gestartet habe, habe ich diesen Befehl in vim ausgeführt.

:syn on
:colorscheme solarized8_dark

Diese hoben meine .vimrcDatei hervor. Also fing ich an mein zu debuggen .vimrc.

Lange Rede kurzer Sinn, set termguicolorswar das Problem. Wenn ich vim mit set termguicolorsKommentaren .vimrcausführte, konnte ich in tmux korrigierte Syntaxhervorhebungen sehen.


Ich hatte das gleiche Problem. wäre toll, termguicolorswenn
ich mit

4

Aus dem vim-Handbuch: :h termguicolorsEmpfiehlt zu lesen: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`.

Ich benutze eine Bedingung ähnlich der folgenden:

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

Ich habe es wirklich gut gemacht termguicolors. Das habe ich gemacht 1. in mein ~ / .bash_profile habe ich folgendes geschrieben:

export TERM=xterm-256color

und in meinem ~ / .vimrc hatte ich das

syntax enable
colorscheme Spacegray

set termguicolors

und es hat perfekt funktioniert! Referenz


: syn on: colorscheme Spacegray: set termguicolors
abbood
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.