İşlev tuşlarını bir tty içinde htop'a nasıl geçirebilirim?


9

htopTty1'de kullanmaya çalışıyorum . Ancak, bazı işlev tuşları normal şekilde çalışmıyor gibi görünmektedir. F1ve F2hiçbir şey yapmazlar ve F3kurulumu tetiklerler (normalde tarafından tetiklenmesi gerekir F2). Ayrıca, F4ve F5çalışmıyor. Ayrıca, Escbu ekranlardan çıkmaya çalıştığımda , iki kez basmam gerekiyor.

Normal bir terminalde ( terminator), işlev tuşları iyi çalışır. Ancak, Escburada da iki kez basmam gerekiyor, bu yüzden belki de kırmızı bir ringa balığı.

Bu işlev tuşlarını tty1'de nasıl kullanabilirim?

DÜZENLE

Tty1, ben basarsanız Ctrl+ vardından F1için F5şu çıktıyı almak vs. I:

^[[[A
^[[[B
^[[[C
^[[[D
^[[[E

İçeri terminatorgiriyorum

^[OP
^[OQ
^[OR
^[OS
^[[15~

Bunun üzerindeki fonksiyon tuşları eşdeğerdir (örn. ^[[17~İçin F6).

DÜZENLEME 2

Stéphane Chazelas adlı kullanıcının yorumu .

  • $TERMtty1'de "normal" çalışma terminalimdeki ile aynı. Öyle xterm-256color.
  • Ekran veya tmux kullanmıyorum.
  • htop1.0.3 kullanıyorum , ancak ilk düzenlemem yukarı yönlü bir sorun olduğunu gösteriyor htop.

" infocmp -L1 | grep key_fBu anahtarların sizin için gönderdikleriyle eşleşiyor mu?

"Bu tuşların sizin için gönderdiklerini eşleştir" ile ne demek istediğinizden emin değilim, ancak bu komutu hem normal terminalimde hem de tty1'de çalıştırdım ve çıktı aşağıdaki gibi aynı oldu.

key_f1=\EOP,
key_f10=\E[21~,
key_f11=\E[23~,
key_f12=\E[24~,
key_f13=\E[1;2P,
key_f14=\E[1;2Q,
key_f15=\E[1;2R,
key_f16=\E[1;2S,
key_f17=\E[15;2~,
key_f18=\E[17;2~,
key_f19=\E[18;2~,
key_f2=\EOQ,
key_f20=\E[19;2~,
key_f21=\E[20;2~,
key_f22=\E[21;2~,
key_f23=\E[23;2~,
key_f24=\E[24;2~,
key_f25=\E[1;5P,
key_f26=\E[1;5Q,
key_f27=\E[1;5R,
key_f28=\E[1;5S,
key_f29=\E[15;5~,
key_f3=\EOR,
key_f30=\E[17;5~,
key_f31=\E[18;5~,
key_f32=\E[19;5~,
key_f33=\E[20;5~,
key_f34=\E[21;5~,
key_f35=\E[23;5~,
key_f36=\E[24;5~,
key_f37=\E[1;6P,
key_f38=\E[1;6Q,
key_f39=\E[1;6R,
key_f4=\EOS,
key_f40=\E[1;6S,
key_f41=\E[15;6~,
key_f42=\E[17;6~,
key_f43=\E[18;6~,
key_f44=\E[19;6~,
key_f45=\E[20;6~,
key_f46=\E[21;6~,
key_f47=\E[23;6~,
key_f48=\E[24;6~,
key_f49=\E[1;3P,
key_f5=\E[15~,
key_f50=\E[1;3Q,
key_f51=\E[1;3R,
key_f52=\E[1;3S,
key_f53=\E[15;3~,
key_f54=\E[17;3~,
key_f55=\E[18;3~,
key_f56=\E[19;3~,
key_f57=\E[20;3~,
key_f58=\E[21;3~,
key_f59=\E[23;3~,
key_f6=\E[17~,
key_f60=\E[24;3~,
key_f61=\E[1;4P,
key_f62=\E[1;4Q,
key_f63=\E[1;4R,
key_f7=\E[18~,
key_f8=\E[19~,
key_f9=\E[20~,

1
Tty1 günü, istemi basın kabuk az Ctrl+Vsonra F1ve eklenen alır ne olduğunu görmek. İçin tekrarlayın F2, F3, F4ve F5, sonra terminatör içinde aynısını yapın. Ne gördüğünü söyle.
Gilles 'SO- kötü olmayı bırak'

@Gilles Soru düzenlendi.
Sparhawk

Orada değeri nedir $TERM? Ekran veya tmux mu kullanıyorsunuz? Htop'un hangi sürümü? Does infocmp -L1 | grep key_fbu anahtarlar size gönderecektim eşleşmesi?
Stéphane Chazelas

@ StéphaneChazelas Soruyu düzenledim.
Sparhawk

2
TERM = linux olmalı, linux sanal konsolunun xterm ile pek ilgisi yoktur. getty sizin için $ TERM belirlemeli, üzerine yazmamalısınız.
Stéphane Chazelas

Yanıtlar:


4

Ayarlayarak:

export TERM=xterm-256color

htopterminalinizin bir Linux sanal konsolu değil, 256 renkli bir xterm olduğunu söylüyorsunuz (ve termcap veya terminfo veritabanını kullanan diğer tüm görsel terminal uygulamaları).

htopkarakter dizisi üzerine gönderilen bilmek terminfo veritabanını sorgular F1, F2... ama için olanlar alacak xterm.

xtermterminfo veritabanını el ile sorgulayarak doğrulayabileceğiniz anahtarlar için Linux sanal konsolundan farklı diziler gönderir infocmp:

$ infocmp -L1 xterm-256color | grep 'key_f[1-5]='
        key_f1=\EOP,
        key_f2=\EOQ,
        key_f3=\EOR,
        key_f4=\EOS,
        key_f5=\E[15~,
$ infocmp -L1 linux | grep 'key_f[1-5]='
        key_f1=\E[[A,
        key_f2=\E[[B,
        key_f3=\E[[C,
        key_f4=\E[[D,
        key_f5=\E[[E,

Yani bir olarak htoptanımayacak , bunun için bekleyecek .\E[[AF1\EOP

Burada, değerler atamak istemiyorsanız $TERMiçinde ~/.bashrc. $TERMterminal emülatörlerinin ( xterm, terminator) kendileri tarafından gettyve Linux sanal konsolları için ( linuxorada olması gerekir ) tarafından ayarlanmalıdır .

Belirli bir terminal emülatörünün seçtiği değerden memnun $TERMdeğilseniz, güncellemeniz gereken terminal emülatörlerinin yapılandırması budur.


Mac'te Terminal tercihlerini açın ve "ansi" den "a" ye geçin xterm-256color.
Xeoncross

Detaylı açıklama için teşekkürler. Benim durumumda, KiTTY (PuTTY çatal) batıyordu $TERMiçin xterm-256color, ancak kullanım için kurulmuştur ESC[n~fonksiyon tuşları. XTerm R6Ayarlarda kullanmak için fonksiyon tuşlarını değiştirdim ve hepsi çalışıyor.
Alan
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.