ttyのhtopにファンクションキーを渡すには?

ttyのhtopにファンクションキーを渡すには?

tty1で使用しようとしていますhtop。しかし、一部のファンクションキーが正しく機能していないようです。何もせずにF1設定をトリガーするようです(通常はトリガーする必要があります)。また、動作しません。また、この画面を終了しようとすると2回押す必要があります。F2F3F2F4F5Esc

一般端末(terminator)では、ファンクションキーがうまく機能します。しかし、ここでも2回押す必要があるので、Escそれはトリックかもしれません。

tty1でこれらのファンクションキーをどのように使用しますか?

編集する

tty1でCtrl+を押しvてから、F1等を押すと、F5次のような結果が表示されます。

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

からterminator私は得る。

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

上記のファンクションキーは同じです(例^[[17~:)F6

編集2

ステファン・チャゼラスへの対応コメント

  • $TERMtty1のものは私の「通常の」作業端末と同じです。これはxterm-256color
  • 私はスクリーンやtmuxを使用しません。
  • 私はhtop1.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~,

ベストアンサー1

設定:

export TERM=xterm-256color

htopあなたの端末はLinux仮想コンソールではなく256色xtermであることを知らせます(termcapまたはterminfoデータベースを使用する他のすべての視覚的な端末アプリケーションを含む)。

htopterminfoデータベースは送信された文字シーケンスに対して照会されますが、F1...F2文字は検索されますxterm

xtermこれらのキーの場合、送信されたシーケンスはLinux仮想コンソールとは異なります。たとえば、terminfoデータベースを手動で照会してこれらのキーを確認できます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,

したがって、としてhtop認識されず、そうなると予想されます。\E[[AF1\EOP

$TERMここではinに値を割り当てたくありません~/.bashrc。ターミナルエミュレータ(、)自体とLinux仮想コンソール(存在する必要があります)によって設定する必要があります$TERMxtermterminatorgettylinux

特定の端末エミュレータで選択した値が満足できない場合は、$TERMその端末エミュレータの設定を更新する必要があります。

おすすめ記事