tmux modunda vim renklerini kaybet


228

İterm2 kullanıyorum ve tmux modundayken vim'de ayarladığım colourscheme görünmüyor. Sadece iterm'de belirlediğim renk şeması. Kabuktan vim çalıştırırsam colorscheme doğru görünür - sadece tmux modundayken.

Ayarlamayı denedim :colorscheme molokaiVim'de (aşağıdaki ekran görüntüsüne bakın) ve değişmiyor - tekrar, iterm2 için varsayılan renkler değişmedi.

İterm veya tmux.conf için bazı ayarlar eksik mi? Dotfles'im github'da.


31
Yaptığınızda ne olur $ tmux -2?
romainl

4
Tamamen öyleydi. -2 bayrağı nedir?
tristen

11
Tmux'u 256 renkle çalışmaya zorlar.
romainl

Yanıtlar:


252

Ben de aynı problemi yaşadım. Tek fark o solarizezaman kullanıyorum molokai.

Sorunu gidermek için, içinde bir takma ad oluşturdum ~/.bashrc:

alias tmux="TERM=screen-256color-bce tmux"

Ve default-terminalseçeneği şu şekilde ayarlayın ~/.tmux.conf:

set -g default-terminal "xterm"

Son olarak, $ source ~/.bashrcyeni takma ad yüklemek için yapın.


20
Bunu tmux -2daha ayrıntılı olduğu için kullanıyorum.
thameera

97
Şahsen bir Ubuntu kutusuna sshed OS X set -g default-terminal "screen-256color"yerine çalışmak zorunda kaldım xterm. Bu siteye atıfta bulundum
waffl

7
Buradaki takma ad mantıklı değil: tmux'un ekranın içinde veya tmux'un içinde olduğu gibi davranıyor ki bu hiç de böyle değil. Tmux'a içinde çalıştığı terminalin 256 rengi desteklediğini varsaymasını söylemek için, çalıştırın tmux -2veya tmux -2 attach(tmux bir terminale her yeni veya mevcut oturum eklediğinizde karar verir). Mantıklı bir takma ad olurdu alias tmux='tmux -2'. Ayrıca bkz. Tmux, TERM ve 256 renk desteği
Gilles 'SO- kötü olmayı bırak'

3
Başka bir cevapta (referansı bulamadım), TERM'yi zorlamanın iyi bir uygulama olmadığını okudum, ancak kesin olarak bilmiyorum. Benim tmux -2için set -g default-terminal "screen-256color"çalıştı seçeneği beri , bu benim seçimim olacak. Yinede teşekkürler!
marcelocra

5
Eğer .tmux.confayar etkisini göstermeye başladığını görünmüyor, kapatmak tüm tmux süreçleri ve yeniden. set -g default-terminal "screen-256color"Herhangi bir takma ad ayarlamadan yapabilirsiniz .bashrc. İnsanların ortam değişkeni takma adı gibi geçici çözümler yaptıklarını, çünkü yapılandırdıktan sonra tüm tmux işlemlerini kapatmadıklarını düşünüyorum .tmux.conf.
Chev

74

@Romainl yukarıda belirtildiği gibi, tmux'u -2bayrağı ekleyerek 256 renk kullanmaya zorlamak zorunda kaldım :

$ tmux -2

Eklediğim alias tmux='tmux -2'bu yüzden, ben unutma, benim bash_profile için :)


Aslında, hiç de zorunlu değil: -2Kullanmıyorum ama Vim'de tmux'da çalışan 256 renk var.
romainl

@romainl tmux terminalinizi 256 renk olarak algılamazsa, bu oldukça yaygındır.
Gilles 'SO- kötü olmayı bırak

1
@Gilles, Vim, tmux'un varsayılanı TERMolduğu için terminalin 256 rengi desteklediğini algılamaz screen. -2değişmez TERMve Vim'in ortamından aldığı bilgilerle renkle ilgili hiçbir şeyi değiştirmez: :echo &t_Coyine de geri döner 8. Verildiği bilgilerle Vim doğru olanı yapar. Ayarlanması gerekir tek şey 1. olan terminal emülatörü en TERMetmek xterm-256colorveya eşdeğer gibi değer urxvt-unicode-256colorve 2. tmux varsayılan TERMile set -g default-terminal "screen-256color".
14'te romainl

@romainl Çoğu ortamlar olması TERMayarlı xtermdeğil, xterm-256colordolayısıyla çalıştırmak ihtiyacını tmux -2(veya TERM=xterm-256color tmux, ya Termcap veya aynı şeyi gerçekleştirmenin başka yollar değiştirin).
Gilles 'SO- kötü olmayı bırak

1
@Gilles, sorun, -2'nin Vim'in 256 renk desteğiyle ilgili davranışı üzerinde hiçbir etkisi olmayan hiçbir şey başaramamasıdır, çünkü Vim için önemli olan tek şey TERM'inizdir ve bu zincirin sonunda ayarlanmalıdır: bağlantı emülatörü. 5 ana bilgisayar üzerinden SSH yaparsanız ve terminaliniz doğru şekilde ayarlanırsa, 5. ana bilgisayarda başlatılan Vim 256 renk TERM'nizi görür ve buna göre hareket eder. Eğer tmux'u zincirin herhangi bir noktasında kullanırsanız -2'nin Vim'in davranışı üzerinde sıfır etkisi olacaktır, çünkü gördüğü tek şey tmux'un varsayılan TERM: ekranı, -2 veya değil nedeniyle çevresi 8 renkle sınırlıdır.
romainl

72

Yukarıdaki tüm çözümleri denedim ve sonunda benim için işe yarayan şey şu satırları koymak .tmux.conf:

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

SSH üzerinden tmux kullanıyorum ve xterm kullanmama rağmen benim için işe yarayan şey bu, sadece normal SSH.
armen.shimoon

Ben ssh üzerinde kullanmıyordum ve bu benim için çalışan tek cevaptı. OSX 10.9.5'te yerel iTerm oturumu.
Chev

Bu benim için çalışıyor (MacOS Mojave + iTerm2 / Alacritty), teşekkürler
Adrian Magdas

31

Az önce neden çok fazla kafa karışıklığı yaşadığımı keşfettim. Buradaki diğerleri gibi, varsayılan terminal ayarının etkili olması için zorlanıyordum. Arka planda bir tmux oturumu yaptığımı hatırladım. Oturumumu yeniden ekledim, işlemlerimi kapattım ve TÜM tmux işlemlerini kapattım. Bir dahaki sefere tmux'u yeniden başlattığımda varsayılan terminal ayarı geçerli .tmux.confolmaya başladı. Başkalarının da bunu yapıp yapmadığını bilmiyorum ama .tmux.confdosyayı değiştirmeden önce tüm tmux işlemlerini kapatmanızı öneririm .

Ben herhangi bir değişiklik yapmadan benim yerel makine (iTerm2 ile OSX 10.9.5) işe benim kurulum var .bashrcya .bash_profile. Tek yaptığım satırı ekleyin idi set -g default-terminal "xterm-256color"etmek ~/.tmux.confve tüm tmux süreçlerini yeniden başlattı.

Herhangi bir değişiklik yapmadan tam olarak aynı şekilde çalışmak için uzaktan kurulumumu (ssh to Ubuntu 14.04) aldım .bashrc. Ben sadece eklenen set -g default-terminal "xterm-256color"etmek ~/.tmux.confbenim uzak makinede ve tüm uzaktan tmux süreçlerini yeniden başlattı.

echo $TERMBir tmux oturumundan Vim'in ne gördüğünü test edebilirsiniz . screenTüm tmux süreçlerini yeniden başlatana kadar değer olarak söylemeye devam etti , bu noktada xterm-256colorbeklendiği gibi yansıtıldı .

Umarım yardımcı olur.


1
Bu yazımdan bu yana birkaç işletim sisteminde daha onayladım, tüm işlemleri kapatıp default-terminalseçeneği ayarlamak .tmux.confşimdiye kadar% 100 çalıştı.
Chev

2
ben de! bu cevap daha uzak olsaydı bu konuda daha az zaman harcamış olurdum.
Sigfried

21

Bu biraz bayat tarafta, ancak ekran kullanmanın genellikle Ana ve Bitiş tuşlarını kıracağından bahsetmeye değer olabilir. kullanma

export TERM="xterm-256color"

bunların işlevselliğini korumalı ve renk şemasının (veya güç hattının) iyi çalışmasına izin vermelidir.


Bunu işaret ettiğiniz için teşekkürler. Bunu bilmiyordum. Halen Debian derv için şimdiye kadar gördüğüm gibi çalışıyor gibi görünüyor. Savunmamda yazı OSX'e atıfta bulundu.
Jpatrick

tmux 1.9a, OSX 10.9.2, iTerm2 Build 1.0.0.20130622 dışa aktarma TERM = "xterm-256color" .bash_profile içinde, sonra iterm'i xterm-256-color olarak ayarladım. Herhangi bir tmux yapılandırması ayarlamanıza gerek yoktur.
agenteo

14

Ubuntu'daki terminalde tmux ve pencerelerde cygwin / mintty ile doğru görüntülemek için vim gerekiyordu. Böyle cevapları birleştirerek işe aldım.

.Bashrc içinde:

alias tmux="tmux -2"

.Vimrc dilinde:

" use 256 colors in terminal
if !has("gui_running")
    set t_Co=256
    set term=screen-256color
endif

" fix cursor display in cygwin
if has("win32unix")
    let &t_ti.="\e[1 q"
    let &t_SI.="\e[5 q"
    let &t_EI.="\e[1 q"
    let &t_te.="\e[0 q"
endif

bu sorunun cevabına , bu Vim wiki sayfasına ve bu blok imleç sorusuna dayanarak


Nane ile ilgili bir sorunum vardı ve vim yapılandırmasını eklemek benim için düzeltildi. tmuxTakma ad yapmam bile gerekmiyordu .
trigoman

@ trigoman, benim için de aynı, sadece .vimrc güncellemek zorunda kaldı.
Masood Alam

Önceki tüm önerileri denedim. Sadece set t_Co=256.vimrc'ye eklendi ve düzeltildi. tmuxTakma ad oluşturmam gerekmiyordu .
Mike

11

Yukarıdaki tüm talimatları denedim ve ben en önemli şey açıkça .bashrc dosyama aşağıdaki satırı eklemek zorunda olduğunu öğrendim.

export TERM=screen-256color

Takma ad neden tmux = "TERM = screen-256color-bce tmux" çalışmıyor bilmiyorum. Sierra 10.12.1 kullanıyorum.


Bu benim için işe yaradı. Sadece TERM'in düz ihracatı. +1
markovchain

10

Herhangi birinin 24 bit renk desteğine ihtiyacı varsa:

Tmux, 2.2 sürümünden itibaren 24 bit rengi destekler. Terminaliniz 24 bit rengi destekliyorsa, terminalinizi terminal geçersiz kılma ayarına ekleyin. Örneğin,

set -ga terminal-overrides ",xterm-256color:Tc"

Çevre kontrol listem:

  • macOS Sierra 10.12.3
  • iTerm2 3.0.14 (Rapor Terminali Tür xterm-256color)
  • neovim 0.1.7 (Ekleyerek 24 bit rengi etkinleştir: xterm-256color- .vimrc)
  • tmux 2.3 (ekleme set -ga terminal-overrides ",xterm-256color:Tc"için .tmux.conf)

Başka bir şey eklemem gerekiyor .bashrcveya .zshrc.

Umarım bu yardımcı olabilir.


benim için işe yarayan tek şey. bu tam olarak ne yapıyor?
volk

6

Bu Google'daki ilk sonuç olduğundan ve yukarıdakilerin hiçbiri yardımcı olmadığından, birisinin yararlı bulabilmesi için bunu yayınlamak istedim

içinde .vimrc:

set background=dark
set t_Co=256

HTH


Bu iki satırı test ettik ve WSL-Windows10'daki Vim'im için iyi çalışıyorlar.
llinfeng

1
Çok teşekkürler. Bu gnome terminali ile Ubuntu 18 üzerinde çalıştı
Roymunson

4

.Tmux.conf dosyasına aşağıdaki satırı eklemek macOS Sierra 10.12.6 ile çalıştı,

set -g varsayılan terminal "ekran-256renk"


Burada aynı. @Waffl bu çözümü bulduğunuz için teşekkür ederiz!
Adam Erickson

3

Kendinizi benimle aynı uyarıda bulursanız, yukarıdakilerin hiçbiri işe yaramadı .. bunu deneyin:

içinde .tmux.conf:

set -g default-terminal "xterm"

bash yapılandırmasında (belki .bashrcveya .bash_profile):

alias tmux="tmux -2"

ve sonra çalıştırın:

killall tmux

ve sonra tmux'u yeniden başlat


3

Eğer kullanıyorsanız tmuxinatorveya mux, sen bu eklemeniz gerekir .bashrcya .zshrc:

alias tmux='TERM=screen-256color tmux -2'
alias tmuxinator='TERM=screen-256color tmuxinator'
alias mux='TERM=screen-256color mux'

Bu, terminalde 256 renk kullanmaya zorlar.

Sonra tmux, tmuxinatorve muxkomut tüm çalışır.



2

Sadece bu sorunla uğraşmak zorunda kaldım ve daha önce gönderilen tüm cevaplar yardımcı olsa da, benim durumumda sorunu çözmediler.

Sorunum , aşağıdaki satır kaldırılarak giderildi .vimrc:

set termguicolors

yine de başka bir talimatla redondant oldu.

Şimdi, aşağıdaki satır benim önceki anwsers bulundu .tmux.conf:

export TERM="screen-256color"

hepsi güzel ve renkli.


2

Çizgiyi kaldırdım set termguicolors, ama çalışmıyor. İş set notermguicolorsyerine ayar .vimrc.


1

Tmux man sayfasından aşağıdaki gibi bayrak ekleyin:

tmux -2

Bu -2bayrak, tmux'u 256 renkli modda çalışmaya zorlar.

Bu benim için çalışıyor


1

Farklı bir dışa aktarma TERMveya varsayılan terminali ayarlamak için çok şansım yoktu .tmux.conf.

Vim renklerini tmux içinde düzeltmek için benim çözümüm bu satırı ekliyordu .tmux.conf:

set -g terminal-overrides 'xterm:colors=88'

Benim TERM=xtermve ben iTerm'in xterm'e ayarlanmış olması nedeniyle neden bu geçersiz kılmaya ihtiyaç duyulduğundan emin değilim , ama işe yarıyor gibi görünüyor.


0

Ubuntu biyonik 18.04.4 LTS ve tmux 2.6 kullanıyorum. Ben de aynı sorunu var ve bu sadece .bashrc içine ekleyerek çözülebilir

export TERM=screen-256color

Ve tabii ki kaynak yapmayı unutma. source ~/.bashrc

Veya sadece teminalinizi yeniden başlatın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.