これをどのようにほどきますか?なぜなら、ブラウザをリロードするために常にコマンドrを押すことになり、多くの場合、ターミナルにいるからです。
矢印キーを再度有効にする方法がわからないため、現在、すべての画面を強制終了して画面を再起動しています。これは面倒です。
Vimの良い支持者として、カーソルキーとしてhjklを使用する方法を学ぶように言わなければならないと思います。問題の調査の途中で、実際の矢印キーの代わりにhjklを使用してテストしていることに気付くまで、問題は不思議なことに修正されたと思いました。
とにかく、今、本当の答えがあります。
すべての画面をシャットダウンして再起動する代わりに、端末間を移動する画面の機能を利用できます。 CTRL+A
CTRL+D
を押して画面を端末から切り離し、screen -D -R
を実行して再接続します。これにより、矢印キーが再び機能するようになります。
画面に表示されていないがVimだけに表示されている場合は、CTRL+Z
と入力してfg
と入力すると同じ効果が得られます。
Vimでカーソルキーの問題を回避することもできますが、リセットによって他のターミナルオプションが変更された可能性があるため、上記のように実行する方が安全です他のランダムな表示/キーボードの問題を参照してください。とにかく再マッピングが必要な場合は、次のとおりです。
map <Esc>[A <Up>
map <Esc>[B <Down>
map <Esc>[C <Right>
map <Esc>[D <Left>
汚れた詳細:
Vimとscreenはどちらもncursesライブラリを使用してターミナルを管理します。 ncursesがVT100互換端末を制御するときに行うことの1つは、矢印キーを「アプリケーションモード」に切り替えることです。これにより、出力されるコードが変更されます。たとえば、上矢印キーはEsc
[
A
からEsc
O
A
に変わります。これを行うために発行するVT100制御コードはEsc
[
?
1
h
です。 Command + Rによって送信されたターミナルリセットコマンドは、カーソルキーをデフォルトにリセットします。
画面を取り外して再接続すると、ncursesが端末の制御を取り戻し、好きな設定がすべて再適用されるため、これがおそらく最もポータブルで信頼性の高い方法で、通常の状態に戻すことができます。
VT100制御コード: http://www.handshake.de/infobase/dfue/prgrmmer/t322.htm
:!reset
を使用すると、これをすばやく簡単に修正できます。
ITermを使用している場合は、command+d
とcommand+w
を押すとvimセッションを取り戻すことができます。
なぜ?
command+d
はターミナルペインを分割し、元のペインを魔法のように復元します。
command+w
は、開いたばかりの分割ペインを閉じます。