web-dev-qa-db-ja.com

PuTTYがEscを送信しない

Win7x64ラップトップからオフィスのUnix環境にPuTTYでSSH接続します。私が直面している問題は、 この投稿 と非常によく似ています。ここでは、Esc文字を端末に送信できません。 viで挿入モードを終了しようとしたときに最初に気づきましたが、その投稿内のトラブルシューティングに基づいて、Escキーを押しても何も起こらないようです。

それで、最初に、問題を言い直させてください。 PuTTYにログインし、ファイルをvi、挿入モードに入り、F1キーを押してから:q(ヘルプを終了する)を押さないと出てこないので、ドキュメントを保存して終了できます。

他の質問の最初のトラブルシューティング手順では、これを試すように述べています。

 python -c "p​​rint ord(raw_input( 'char'))"

その場合、結果は27になります。これを実行すると、空の文字列があると言われます(コメントの1つに似ていますが、このユーザーは二度と戻ってきません)。

それからコメントで次のことを試しました...しかし正直なところ、私は自分が探していたものがわかりませんでした。コマンドと私の結果が与えられます:

#bind -p | grep -i '\\ e' | less 
 
 "\ e\Cg":abort 
 "\ eOD":backward-char 
 "\ e [D":backward-char 
 "\ e\Ch":backward-kill-Word 
 "\ e\C-?":backward-kill-Word 
 "\ e [1; 5D":backward-Word 
 "\ e [5D":後方ワード
 "\ eb":後方ワード
 "\ e":履歴の終わり
 "\ e [6〜 ":履歴の終わり
"\eOF ":行の終わり
"\e [4〜 ":行の終わり
"\e [8〜 ":行末
"\e [F ":行末
"\eOC ":forward-char 
"\e [C ":forward-char 
"\e [1; 5C ":forward-Word 
"\e [5C ":forward-Word 
"\ef ":forward -Word 
 "\ eg":glob-complete-Word 
 "\ e ^":history-expand-line 
 "\ e#":insert-comment 
 "\ e *":insert-completions 
 "\ e。":insert-last-argument 
 "\ e _":insert-last-argument 
 "\ ed" :kill-Word 
 "\ eOB":next-history 
 "\ e [B":next-history 
 "\ en":non-incremental-forward-search- history 
 "\ ep":non-incremental-reverse-search-history 
 "\ e =":possible-completions 
 "\ e?" :possible-completions 
 "\ eOA":previous-history 
 "\ e [A":previous-history 
 "\ e [2〜":quoted-insert 
 "\ e\Cr":revert-line 
 "\ er":revert-line 
 "\ e":set-mark 
 "\ e\Ce" :Shell-expand-line 
 "\ e&":tilde-expand 
 "\ et":transpose-words 
 "\ eu":upcase-Word 
 "\ e。":yank-last-arg 
 "\ e _":yank-last-arg 
 "\ e\Cy":yank-nth-arg 
 "\ ey ":yank-pop 

を使用して Ctrl+V 次に打つ Esc ヒットするまで何もしません Enter、次に^Mが表示されます(これは、引用符から取得したキャリッジリターン(CR)文字だと思います Enter キー)。タイピング Ctrl+[viを終了させて​​くれるので、それが私が探している正しい文字だと思います。端末がなぜ考えているのかわかりません。 Esc バインドされていないか、ランダムな文字にバインドされています。

キーボード/端末のファンクションキーとキーボードの現在の設定は「Esc[n~」に設定されています。 「Linux」と「XtermR6」に変更してみましたが、何も変わらないようです。

最近、別のアプリケーションが機能するようにトンネルを追加する必要があり、Terminal > Features > Disable application keypad modeの下の設定をtrueに設定しました。それ以来、私はこれを誤りに戻しましたが、それでも私の問題は解決したようです。

私の仮定は、これらの変更後にプロファイルを保存することですが、現在保存されている他の何かを誤って変更しましたが、デフォルト設定に戻してサーバーにログインしても問題は解決しません。

私には~/.vimrcがなく、管理者によるとサーバーに変更が加えられていないので、何かをしたと思います。

この時点での私の質問は、PuTTYをチェックインするか、キーがプロンプトに渡される方法の動作を変更するように変更してみることができますか? .vimrcを作成して、これを強制的に機能させることは可能ですか?これを機能させるために他に何ができますか?

私はこれらのフォーラムの新規ユーザーなので、これをレイアウトするのを間違えた場合はお知らせください。ただし、問題のトラブルシューティングや正しい方向への指示に役立つ情報があれば、ぜひお知らせください。

4
John Lillard

...再びvinumpadが機能しないことに不満を感じたので、元の質問で述べたように「アプリケーションのキーパッドモードを無効にする」を「True/checked」に戻しました。これにより、viでテンキーを再び使用できるようになっただけでなく、Escの問題も修復されたようです。

私が追加できる唯一の考えは、私のマシンにもJava何らかのエラーがあり、IT技術者の1人によって修正されたWindowsUpdateを台無しにしたようです。おそらく2つは無意識のうちに相関??とにかく、私は質問を閉じています。

おそらく、プロファイルを正しく保存しなかったのでしょうか。私はこれを再確認したと確信していますが、これが「魔法のように自分自身を修正した」という考えにも苦労しています。

0
John Lillard

私はちょうど同じ問題を抱え始めました、打つ Ctrl+[ Viの挿入モードも終了します(これはの代替キーです Esc)。

修正するために、Terminal > Keyboardに移動し、Function Keys and KeypadVT100+ emulationに変更しました。

2
Sun Kwok

多分私は別のシェルか何かを持っていますが、ctrl + alt [は私のためにそれをします

0
Ben

あなたが答えを見つけてくれてうれしいです、それはPuTTY設定をいじっていました。別の方法として、Escキーが期待どおりに機能しない場合は、Ctrl- [を試すことができます。 ] [Cyber​​Pillar] [:ctrlキーキーボードシーケンス これについて言及しています。 ] [Cyber​​PIllar] [:メタキー も同様です。ヒントは非常に便利な場合があるため、特に、リモートのUnixプログラム(前述のviなど)でEscキーを定期的に使用する場合は特にそうです。

0
TOOGAM