Çevre:
- Fedora 25 (4.9.12-200.fc25.x86_64)
- GNOME Terminal 3.22.1 VTE sürüm 0.46.1 + GNUTLS kullanımı
- VIM - Vi IMproved 8.0 (2016 Eyl 12, derlendi 22 Şub 2017 16:26:11)
- tmux 2.2
Kısa süre önce tmux kullanmaya başladım ve Vim içindeki renklerin tmux'un içinde mi yoksa dışında mı olduğuna bağlı olarak değiştiğini gözlemledim. Git farkını izlerken Vim'in dışındaki (soldaki) ve içindeki (sağdaki) Vim ekran görüntüleri aşağıdadır:
Benim TERM
değişken
- Dış tmux:
xterm-256color
- Tmux içinde:
screen-256color
Vim, bu terminal tiplerini beklendiği gibi bildirir (yoluyla :set term?
):
- Dış tmux:
term=xterm-256color
- Tmux içinde:
term=screen-256color
Vim ayrıca her iki örneğin de 256 renkli modda çalıştığını bildirir (üzerinden :set t_Co?
):
- Dış tmux:
t_Co=256
- Tmux içinde:
t_Co=256
Vim'i tmux içinde 256 renkli modda çalıştırmaya ilişkin benzer birçok soru var (bulduğum en iyi cevap burada ), ancak yukarıdaki bilgileri verdiğimde bunun benim sorunum olduğunu sanmıyorum.
Uçbirim tipine ayarlanmış Vim ile çalıştırırsam, sorunu tmux dışında kopyalayabilirim screen-256color
:
$ TERM=screen-256color vim
Bu da beni renk farkına neden olan xterm-256color
ve screen-256color
terminal yetenekleri arasında bir miktar fark olduğuna inandırıyor . Başlıkta sorulan soruya hangisi yol açar: Vim renklerinin farklılık göstermesine neden olacak uçbirim özelliklerinde özellikle ne var? :set termcap
Tmux’un içinde ve dışında koşmak arasındaki farkları görüyorum , ancak davranışlarda hangi değişkenlerin gerçekten de farklılığa neden olduğunu merak ediyorum.
Bir önceki sorudan bağımsız olarak, tmux'un içinde veya dışında çalışırken Vim renklerinin tutarlı olması mümkün müdür? Denediğim bazı şeyler:
- Tmux terminalinin kullandığı varsayılan değeri açık bir
~/.tmux.conf
şekilde çeşitli değerlere ayarlamak (bazıları tmux SSS’nin tavsiyesine karşı ):
-g default-terminal "screen-256color" olarak ayarla -g varsayılan terminalini "xterm-256color" olarak ayarla -g default-terminal değerini "screen.xterm-256color" -g varsayılan terminalini "tmux-256color" olarak ayarla
- Kullanarak tmux'u başlatın
tmux -2
.
Her durumda Vim, tmux'un içinde farklı renkler göstermeye devam etti.
xterm-256color
(dosyada "38; 5;" için arama yapın), ancak screen-256color
. Bir var yerde Örneğin \e[38;5;81m
içinde xterm-256color
(renk 256 renk paletinin 81., bir orta mavi ton), screen-256color
ihtiva \e[34m
yerine (8-renk paletinin standart mavi). Öyleyse asıl soru, neden vim'in 256 renkli paleti kullanmadığıdır TERM=screen-256color
.
xterm-256color
sürümün önce eski renklerle, sonra da 256 renk paletiyle ekranı iki kez yazdırması gibi görünüyor. Örneğin, dosyada "F1" aratın, içinde iki renkli, xterm-256color
ilki \e[34m
renkli, ikincisi ile eşleşir \e[38;5;81m
. Burada neler oluyor bilmiyorum.
set -g default-terminal "screen.xterm-256color"
içinde ~/.tmux.conf
tmux config ve yeniden: ben (vurgulamak sorunu) için çalışmış (<Cs> kaynak-dosya ~ / .tmux.conf). thx
script
, başlatırvim
, çıkarvim
ve sonrascript
kabuğundan çıkar ve ortaya çıkantypescript
dosyayı ekler misiniz? Sonra aynı adımları bununla tekrarlayınTERM=screen-256color vim
.