Tty1でhtop
を使用しようとしています。ただし、一部のファンクションキーは正常に機能していないようです。 F1 そして F2 何もせず、 F3 セットアップをトリガーするようです(通常はによってトリガーされるはずです F2)。加えて、 F4 そして F5 動作しません。また、押してみると Esc これらの画面から抜け出すには、2回押す必要があります。
通常の端末(terminator
)では、ファンクションキーは正常に機能します。しかし、私は押す必要があります Esc ここでも2回なので、おそらくそれは赤いニシンです。
Tty1でこれらのファンクションキーを使用するにはどうすればよいですか?
Tty1では、 Ctrl+v その後 F1 に F5、など。次の出力が得られます。
^[[[A
^[[[B
^[[[C
^[[[D
^[[[E
terminator
では、
^[OP
^[OQ
^[OR
^[OS
^[[15~
これより上のファンクションキーは同等です(例:^[[17~
にとって F6)。
StéphaneChazelasの コメント に応えて。
$TERM
tty1でも、私の「通常の」動作中の端末と同じです。 xterm-256color
。htop
1.0.3を使用していますが、最初の編集ではhtop
の上流の問題であることが指摘されているようです。「します
infocmp -L1 | grep key_f
それらのキーがあなたに送るものと一致しますか?
「これらのキーが送信するものと一致する」という意味がわかりませんが、通常の端末とtty1の両方でこのコマンドを実行したところ、出力は次のように同じでした。
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~,
設定することにより:
export TERM=xterm-256color
htop
(およびtermcapまたはterminfoデータベースを使用する他のすべてのビジュアル端末アプリケーション)に、端末が256色のxtermであり、Linux仮想コンソールではないことを伝えています。
htop
は、terminfoデータベースにクエリを実行して、送信される文字のシーケンスを確認します。 F1、 F2...しかしxterm
のものが取得されます。
xterm
は、Linux仮想コンソールとは異なるシーケンスを送信します。これらのキーは、たとえばinfocmp
を使用して手動でterminfoデータベースをクエリすることで確認できます。
$ 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,
したがって、htop
は\E[[A
を F1、そのために\EOP
を期待します。
ここでは、$TERM
の~/.bashrc
に値を割り当てたくありません。 $TERM
は、ターミナルエミュレーター(xterm
、terminator
)自体によって設定され、Linux仮想コンソールの場合はgetty
によって設定されます(linux
である必要があります)。そこ)。
特定のターミナルエミュレータが$TERM
に選択した値に満足できない場合は、更新する必要があるターミナルエミュレータの構成です。