viのテンキーのキーが数字ではなく文字を挿入する


8

私はviが初めてです。実際、私は小さなテキストファイルを変更するためだけに使用しています。次のように、テンキーに深刻で異常な問題があると思いますvi IN。筆記してEnterキーを押します。これにより、という名前のファイルにアクセスできますIN。次に、矢印キー(またはhjkl)を使用して、ファイル内でカーソルを移動します。次に、を押しiてアクティブにしinsert mode、書き込みます。ここでの問題は来る:私を得るため、テンキーは、正常に動作しないpqrstuvwxyl、私が押したときに0123456789+,.-*/=まだ仕事を)。


1
なぜ私の質問はここに移行されたのですか?問題はMacの問題ではなく、Viの問題でした。実際、私が言ったように、テンキーはViだけは機能しませんでした。それどころか、それは常にターミナルや他のアプリケーションで機能してきました。
エンリコマリアデアンジェリス

回答:


8

私が理解している限り、VT100端末の数字キーパッドには、通常の数字キーパッドモードアプリケーションキーパッドモードの 2つのモードがあります。後者は数字ではなくエスケープシーケンスを送信するキーパッドキーを備えています。たとえば、「1」キーが送信され<ESC>[Oq、「2」キーが送信されます。画面にはqr<ESC>[Orの文字のみが表示されます。これらは、プログラム(ホスト)が一部の機能のコマンドとして解釈する制御シーケンスです。したがって、このモードでは、キーパッドキーは追加のファンクションキーとして実際に使用されます。

VT100端末標準に従って、プログラム(ホスト)は、端末にキーパッドをアプリケーションモードに切り替えるように「要求」する場合があります。(特定の制御シーケンスを端末に送信することでこれを行うことができます。)ViとVimはこれを行うことが知られています。モード切り替えは普遍的ではありませんが、プログラムからプログラムベースへの切り替えです。これは、それを要求したプログラムでのみアクティブです。シェルを含む他のプログラムでは、キーパッドは数字モードのままです。OS XのTerminal.appのデフォルト設定では、プログラムがアプリケーションモードに切り替えられるようになっています。これは、「VT100アプリケーションキーパッドモードを許可する」オプションのチェックを外すことで無効になります。(ところで、OS X 10.7では、このオプションは「Strict VT100 keypad behaviour」というラベルが付いています。)

以下も参照してください。

http://www.vt100.net/docs/vt100-ug/chapter3.html https://ttssh2.osdn.jp/manual/en/usage/tips/appkeypad.html


多分私はあなたが書いたものの要点を理解しなかった。私がターミナルにいるとき、キーパッドはうまく機能します(数字を挿入します)。「奇妙な」動作は、Viの挿入モードでのみ発生していました。
Enrico Maria De Angelis

1
モードスイッチは、それを要求したプログラム(この場合はvi)でのみアクティブです。したがって、キーパッドは、シェルを含む他のプログラムで正常に動作します。この説明を回答に追加しました。
Dictionarics Anonymous

9

自分で問題を解決しましたが、私のソリューションが機能する理由を知りたいのですが。次の画像で赤い矢印が示すオプションの選択を解除しました 入る これはイタリア語ですが、同じウィンドウの英語版はこちらです

しかし、私はこれを有効にしたことを思い出しませんが、それはあります。


編集は誤解を招くものです。「これを有効にしたことを思い出せないというのは誤りです。それどころか、私はこのウィンドウでそれを有効にしたことはない確信しています
エンリコマリアデアンジェリス

さらに、このオプションがなぜその結果をもたらしたのか、他に結果がある場合、そしてタイプミスの副作用によってそれを可能にした可能性がある場合、誰かに私に教えてもらうように頼んだ部分がありました。
エンリコマリアデアンジェリス

私の知る限りでは、このオプションはデフォルトで有効になっています(少なくとも私のMacでも有効になっていて、自分で意図的に有効にしていないのは確かです)。2番目のコメントについては、回答に隠されているフォローアップの質問に関する編集履歴の備考を参照してください。
ノーヒルサイド

1
参考までに、Viには常に数字キーパッドを使用して数値を挿入しました。とにかく、おそらくこのオプションはヨセミテからエルキャピタンへのアップグレードによって有効にされた可能性があります(アップグレード後に数字キーパッドを使用して数字を挿入したことは確かです)。
Enrico Maria De Angelis

1
以前はデフォルトでオンでした。OS X 10.11 El Capitan以降では、デフォルトでオフになっています。Vimはデフォルトのマッピングを提供せずにアプリケーションキーパッドモード(DECKPAM)を有効にしています。Vimがなぜこれを行うのか、私にはわかりませんでした。デフォルトのマッピングを提供するか、デフォルトでDECKPAMを有効にしないようにすべきだと思います。
Chris Page
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.