daha azı aramayı vurgulamaz


11

Bir şey oldu, artık daha az vurgu görmüyorum. Denedim:

  • farklı terminal kullanarak.
  • -gseçeneği kullanma
  • -Gorada olmadığından emin olmak
  • ^ K ararken
  • ESC-U

Hiç bir şey yardımcı olmaz.

Ubuntu 12.10'da i3 masaüstünde çalışıyorum. $TERM=screen-256. Ben kullandığınızda ^ ALT 1geçmek için tty1 ve yapılacak man manbunun hem erkek parametrelerini orada vurgular görüyoruz ve desenleri arama yapabilirsiniz.

Düzeltmek için başka ne yapabilirim?


1
TERM değişkenini bu değere ne ayarladı? Ekran kullanıyor musunuz?
Dennis

Yanıtlar:


3

TERM değişkenini uygun bir değere ayarladığından TTY1'deki vurgulama çalışır.

Ekran kullanıyorsanız:

TERM değişkenini uygun bir değere değiştirin (örn. Ekran veya ekran 256 renk ). Kişisel ~ / .screenrc'nizi veya sistem genelindeki / etc / screenrc'nizi kontrol edin ve ilgili satırı düzeltin.

Daha az sürümümde, ekran 256 değeri aslında bir hataya neden olmalıdır:

WARNING: terminal is not fully functional
-  (press RETURN)

Ekran kullanmıyorsanız:

Ekran * Sadece ekranın tarafından doğru yorumlanır olsun.

TERM için doğru değer terminal emülatörünüze bağlıdır ve genellikle onun tarafından ayarlanmalıdır. Ubuntu'nun önceden kurulmuş üç terminal öykünücüsünün varsayılan ayarı xterm'dir .

gerçekleştirmek

grep -R TERM= ~/.* /etc 2> /dev/null

kabuğunuzun yapılandırma dosyalarında TERM değerinin geçersiz kılındığını kontrol edin.


3
echo $ TERM de TTY1 yeniden 'screen-256 color' içinde. Ancak TERM'i 'xterm' olarak değiştirmek, onu tekrar vurgular.
majkinetor

2

Bu sinir bozucu. Burada neler oluyor? ( tmuxaltında iTerm.app)

$ echo test > test ; echo $TERM
screen

ve sonra bazı kayıtlarla

$ script withscreen
Script started, output file is withscreen
$ less -p test test
... q to quit and then exit the shell session ...

$ script withxterm
Script started, output file is withxterm
$ TERM=xterm less -p test test
... q and exit again ...

ve şimdi kullanılan kodlara bakıyoruz

$ grep test withscreen | hexdump -C
00000000  24 20 6c 65 73 73 20 2d  70 20 74 65 73 74 20 74  |$ less -p test t|
00000010  65 73 74 0d 0d 0a 1b 5b  33 6d 74 65 73 74 1b 5b  |est....[3mtest.[|
00000020  32 33 6d 0d 0a 1b 5b 35  3b 31 48 1b 5b 33 6d 74  |23m...[5;1H.[3mt|
00000030  65 73 74 1b 5b 32 33 6d  0d 0a 1b 5b 33 38 3b 31  |est.[23m...[38;1|
00000040  48 1b 5b 33 6d 74 65 73  74 20 28 45 4e 44 29 1b  |H.[3mtest (END).|
00000050  5b 32 33 6d 1b 5b 4b 0d  1b 5b 4b 1b 5b 3f 31 6c  |[23m.[K..[K.[?1l|
00000060  1b 3e 24 20 5e 44 0d 0d  0a                       |.>$ ^D...|
00000069
$ grep test withxterm | hexdump -C
00000000  24 20 54 45 52 4d 3d 78  74 65 72 6d 20 6c 65 73  |$ TERM=xterm les|
00000010  73 20 2d 70 20 74 65 73  74 20 74 65 73 74 0d 0d  |s -p test test..|
00000020  0a 1b 5b 37 6d 74 65 73  74 1b 5b 32 37 6d 0d 0a  |..[7mtest.[27m..|
00000030  1b 5b 35 3b 31 48 1b 5b  37 6d 74 65 73 74 1b 5b  |.[5;1H.[7mtest.[|
00000040  32 37 6d 0d 0a 1b 5b 33  38 3b 31 48 1b 5b 37 6d  |27m...[38;1H.[7m|
00000050  74 65 73 74 20 28 45 4e  44 29 1b 5b 32 37 6d 1b  |test (END).[27m.|
00000060  5b 4b 0d 1b 5b 4b 1b 5b  3f 31 6c 1b 3e 24 20 65  |[K..[K.[?1l.>$ e|
00000070  78 69 74 0d 0d 0a                                 |xit...|
00000076
$ 

1b 5b ...kodlar başvurarak daha anlaşılır hale getirilebilir xterm kontrol dizileri belgeleri ya da bir altında görmek için sekanslar ile elle uğraşmak için TERM=xtermvurgulama neden olan

$ printf "\033[7mtest\033[27m\n"
test

hangi TERM=screendurumda yapmaz, ters olduğunu kontrol dizileri docs başına

ESC [
     Control Sequence Introducer (CSI  is 0x9b).
...
CSI Pm m  Character Attributes (SGR).
...
            Ps = 7  -> Inverse.
...
            Ps = 2 7  -> Positive (not inverse).

ve yakındaki o belgeden biz öğrenebilir screenterminali \033[3miçindir italik ve \033[23m italik değil .

Bu bulgu bazı seçenekler sunmaktadır; terminali italik metin gösterecek şekilde yapılandırabiliriz veya bunun yerine screenterminalin italik yerine ters kod kullanmasını deneyebiliriz . ( less(1)Dokümanlarda kazı yapmak, keman yapmak için italik düğmeler yerine ters "açık kullanım" göstermedi.) (Ayrıca, bazı terminaller X'i Y'ye çevirmek için destek sunabilir, ayrıntılar için terminal dokümanlarını kontrol edebilirsiniz.) (Veya farklı bir terminal emülatörü deneyin ve bunun ne yaptığını görün ...)

Vay canına italik metin çirkin . Bunun yerine kodları screenters çevirmek için değiştirmeyi deneyelim . Bu açıkça, üzerinden veya tarafından derlenebilen terminfo(veya muhtemelen termcap) veritabanını içerir.infocmp(1)tic(1)

$ TERM=screen infocmp > ti.screen ; TERM=xterm infocmp > ti.xterm
$ fgrep '\E[7' ti.xterm
        rc=\E8, rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM,
        smir=\E[4h, smkx=\E[?1h\E=, smm=\E[?1034h, smso=\E[7m,
$ fgrep rev= ti.screen
        nel=\EE, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
$ fgrep '\E[3m' ti.screen
        smso=\E[3m, smul=\E[4m, tbc=\E[3g,
$ 

Ben tahmin ediyorum Yani smsogöz önüne alındığında kullanılan ediliyor xtermkullanımlar \E[7mve screen \E[3m; buna göre terminfo(5)"çarpıcı mod" ve tersi ile eşleştirilir rmso; bunları xtermkullananlara değiştirelim ...

$ TERM=screen infocmp | sed -e 's/smso=[^,]*/smso=\\E[7m/;s/rmso=[^,]*/rmso=\\E[27m/' > foo
$ tic -o ~/.terminfo foo
$ rm foo

Hey şimdi daha iyi görünüyor (ancak tüm ana bilgisayarlarda screenveya herhangi bir terminfodosya için yapılması gerekecek ...)

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.