web-dev-qa-db-ja.com

Esc、Ctrl、Shift、AltなどのキーがWindows PCのSSHセッションで機能しないのはなぜですか?

私はWindowsPCで作業しています。 Linux(CentOS)マシンでターミナル(PuTTYまたはSSHを使用)を開くと、次のようなキーを取得できません。 Esc、 Ctrl、 Shift そして Alt 働くために。

Midnight Commander(現在は)に必要です Ctrl+Ins そして Shift+Ins 私のために働いていません)。これらのキーを機能させることは可能ですか?

6
Igor Mukhin

PuTTYは、シリアル(RS232c)接続を介してUnixマシンに接続されている端末をエミュレートします。構成オプションについては ここ を参照してください。一般的な端末タイプには、vt100vt200xtermansiが含まれます。

適切な操作を行うには、Unix環境変数TERMが、エミュレートされる端末のタイプと一致する必要があります(PuTTY構成Connection/Data/Terminal-typeを参照)。テキストモードのコンソールウィンドウにもxtermを使用しています。

コマンドとしてecho $TERMを使用して、現在の値を見つけます。

Escは、端末制御シーケンスの最初の文字です。したがって、通常はスタンドアロン文字として使用しないでください。 Ctrl、 Shift そして Alt それ自体では、Unixマシンに送信される文字をトリガーしません。 PuTTY構成メニューTerminal/Keyboardを利用して、特定のキーの変換方法に影響を与えることができます。

3
Axel Kemper

PuTTYはTERM変数をxtermに設定しますが、その動作は実際にはxtermの動作と一致しません。質問で言及されている2つの機能があります。

  • Escape 特別なキーによって返されるprefixは、metaキーの代わりにxtermによって提供されます(の説明を参照してください)。 eightBitInput マニュアル内)。
  • 他のキー(Control、 Shift そして Alt)は通常、*修飾子として使用されます。つまり、通常、文字を単独で送信するのではなく、同時に押されたキーの動作を変更します。

Ncurses FAQshift-またはcontrol-modifiersを使用するにはどうすればよいですか?は、変更されたキーの背景の一部を示します。 PuTTYはその any を実装していません。シフトされたカーソルキーによって送信される制御シーケンスを変更変更し、normalモードとapplicationモードを切り替えます(を参照)。 xterm FAQ(どのような)シェルでもカーソルキーを使用できないのはなぜですか?これらの用語の説明については)。

ncursesには、PuTTYのデフォルト構成の正確な端末の説明があります(キーボードダイアログ設定に対応するようにいくつかの説明を作成できますが、実際にはそれらはめったにありません言及された、おそらくめったに使用されない)。完全な端末データベースを備えたシステムには、PuTTY端末の説明があります。

TERMxtermに設定する他の端末エミュレーターと同様に、完全な端末の説明には、xtermとは多くの違いがあります。 ncurses FAQTERMを「xterm」に設定して使用しないのはなぜですか?はその側面の概要を示しています。

sshの言及は、Cygwinでminttyを使用している可能性があることを示唆しています。これはPuTTYの子孫ですが、ほぼ同じ制限があります。

2
Thomas Dickey

これはPuTTYのバグであるため、答えはできませんです。

あります KiTTY これはPuTTYのフォークであり、適切に実装されています Ctrl/Shift サポート、あなたはそれを見てみたいかもしれません。

出典: https://superuser.com/a/1226621/360137

ちなみに、デフォルトではKiTTYには Ctrl+Up/Down 透明度制御のホットキーとして、セッションのデフォルト値としてWindow->Transparency-1に設定して、透明度を完全に無効にすることができます。

0
The Godfather