Tmux'ta vurgulama düzeltildi


18

Ben kullanmaya başladığımdan beri konsolda (ters modu) vurgulayarak özlediğimi urxvt + tmux ana terminal olarak. Vurgulamalar, ilk başta oldukça havalı görünen - italik yazı tipi ile değiştirildi, ancak bir şey aramaya çalıştığımda binlerce italik olmayan bir italik kelimeyi bulamıyorum less.

Bu, terminal türü bir xterm*profile ayarlandığında (örn set -g default-terminal "xterm-color". .Tmux.conf ile ) düzgün çalışır . Ancak bazı kısayollar çalışmaz, uygulamalar terminalin uygun geometrisini alamaz, ... bu durumda.

Yanıtlar:


11

Bu konuda tmux sayfalarında bilgi ve çözümler buldum:

Ekranın terminfo açıklaması italik moddan yoksundur ve yerinde çarpıcı mod vardır, ancak urxvtitalik için kullanılan aynı kaçış dizisini kullanır. Bu vim, italik arayan uygulamaların (bu gibi ) onu bulamayacağı ve tersine dönebileceği anlamına gelirken, göze çarpan soran uygulamalar (daha az gibi) tersine italik olacak.

[Düzeltme 1] Terminfo girişlerini değiştirin ve ters + italik ifadeleri alın

(Kullanıcı Başına!)

Bu uygulamaların haberdar etmek için tmuxdestekler italik ve standout uygun bir kaçış dizisi kullanmak için, yeni bir oluşturmanız gerekir terminfo'ya değiştirilmiş dosyayı sgr, smso, rmso, sitmve ritmgirişler:

$ mkdir $HOME/.terminfo/
$ screen_terminfo="screen"
$ infocmp "$screen_terminfo" | sed \
  -e 's/^screen[^|]*|[^,]*,/screen-it|screen with italics support,/' \
  -e 's/%?%p1%t;3%/%?%p1%t;7%/' \
  -e 's/smso=[^,]*,/smso=\\E[7m,/' \
  -e 's/rmso=[^,]*,/rmso=\\E[27m,/' \
  -e '$s/$/ sitm=\\E[3m, ritm=\\E[23m,/' > /tmp/screen.terminfo
$ tic /tmp/screen.terminfo

Ve tmux'a ~ / .tmux.conf dosyasında kullanmasını söyleyin :

set -g default-terminal "screen-it"

Terminaliniz 256 rengi destekliyorsa, şunları kullanın:

$ screen_terminfo="screen-256color"

"ekran" yerine. Daha fazla bilgi için 256 renk desteği hakkında SSS girişine bakın. Ayrıca tmux'un italik harfleri desteklemeyen terminallerde ters video görüntüleyeceğini unutmayın.

Senin Eğer urxvthiç italik göstermez kutu, emin olun bir italik yetenekli yazı, örneğin, eklemek etkin olması ~ / .Xdefaults :

urxvt.italicFont: xft:Bitstream Vera Sans Mono:italic:autohint=true

[Düzeltme 2] İtalik kontrol karakterlerini ters ile değiştirin

Bu terminal geçersiz kılma ~ / .tmux.conf dosyasına ekleyin :

set -g terminal-overrides 'rxvt-unicode*:sitm@,ritm@'

2
Düzeltme 1 çalışıyor gibi görünüyor, ancak 2015, bu gerçekten zor olabilir mi?
user1338062

Ne yazık ki, bu sorun için daha iyi bir çözüm bulamıyorum + Bunu bir tmux posta listesinde bulduğumda aramayı bıraktım ... :(
andras.tim

4
Peki, tmux SSS'ye göre tmux 2.1 davranışı düzeltmelidir. Sanırım bu sadece geçici olarak gerekli. Şahsen OP'nin söylediklerini yaptım ve benim default-terminaliçin ayarladım xterm.
user1338062

Bazen bu çok iyi değil. Örneğin, PuTTY ile uyumlu olduğunuzda kullanamazsınız xterm, sadece screeenvaryantlar.
andras.tim

1
Düzeltme 1 benim için çalıştı, ama güneş enerjimi kaybettim dircolors; TERM screen-itTerminaller listesine ekleyerek bu sorunu çözebildim ~/.dircolors.
Benjamin W.

4

Daha hızlı yolu:

set -g terminal-overrides "screen.xterm-new"

Daha fazla sihir olmadan çalışır (ve yine de tmux kılavuzunda "ekran" veya bunun bir türevi olması gereken terminal tipi hakkındaki uyarıyı dikkate alır).


1
Benim için mükemmel çalışıyor, örneğin watch -n10 -d COMMAND args..şimdi değişiklikleri algılamaya izin veriyor (boşluklar gibi! İtalik boşlukları nasıl yapıyorsunuz?). Bunun kabul edilen cevap olması gerektiğini düşünüyorum. Not: Terminal zaten açıkken, şunu kullanınTERM=screen.xterm-new; export TERM
Tino

2

Ben urxvt arch linux'da çalıştırıyorum. Operasyonun cevabı bana yardımcı olmadı. Bu bana yardımcı oldu:

https://github.com/tmux/tmux/blob/2.1/FAQ#L355-L383


ara italicve çalıştır; daha sonra bunu tmux config dizinine koyun

set -g default-terminal "tmux"

"tmux-256color" kullanmayın. (dene, sanırım, ama benim için işe yaramadı.)


Son olarak, bunu rc'nize ekleyin (.zshrc, .bashrc, vb.):

export TERM="xterm-256color"
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.