Linuxをシングルユーザーテキストモードで実行しています( ここに記述されているように ) Ctrl+PgUp そして Ctrl+PgDn 期待通りに振る舞わないでください。を使う cat -v - 端末コードを表示するには、 PgUp そして Ctrl+PgUp 両方とも同じコードを生成します ^[[5~。私が見るグラフィカルモードで同じことをすること PgUp => ^[[5~ そして Ctrl+PgUp => ^[[5;5~ (そして両方のキーは期待通りに動作します)。したがって、私は推測します:
- ハードウェアの問題ではありません
- マッピング
PgUp=>^[[5~意図したとおりに機能している - 問題はそれです
Ctrl+PgUpのように見えますPgUpそれがターミナルに着いたら。
私のユースケース(Vim)には私が設定できます PgUp として扱われる Ctrl+PgUpしかし、可能であれば、私は彼らに異なる振る舞いをさせたいのです。
これを修正するために編集できる設定はありますか?端末に到達する前に文字シーケンスを変更するものはありますか?
さらなる調査からのより多くのメモ:
- テキストモードで起動するのではなく、tty1にドロップするだけでこれを再現できます(
Ctrl+Alt+F1) - 私は別のマシンでそれを再現することができます。
- 私が走ったdirktの提案に従って
echo $TERMそして得たlinux。
infocmp。しかし、問題は何ではないと思います PgUp にマップするが、それは PgUp そして Ctrl+PgUp 区別がつかない。明確にするために編集します。
knp そして kpp。あなたは簡単に最下層をチェックすることができます evtest私の推測では、 Ctrl キーがはっきりと見えるようになり、キーボードイベントがカーネル入力レイヤを離れてコンソール行の分野に入った後(または実際に翻訳が存在する場所にかかわらず)に翻訳が行われます。
linux(echo $TERM)、infocmp linuxを示すknp(次のページ)そしてkpp(前のページ)にバインドされていますESC [ 6 ~そしてESC [ 5 ~それぞれ。そのため、これはLinuxテキストコンソールの「機能」です。ただし、どのレベルが責任を負っているのか、またその設定方法は正確にはわかりません。エスケープシーケンスを認識するようにvimを設定しようとするのはもっと簡単かもしれません。