Linuxでキーボードマッピングとそれに関連するものを組み合わせる方法を理解するのにいつも苦労してきました。
物事が壊れたとき、無限の古いメーリングリストとフォーラムの投稿を調べて見つける必要がある場合、私の血は沸騰します[〜#〜] that [〜#〜] 1つのコマンドまたはinputrc行問題。
端末タイプを切り替えるまで、バックスペースがvimで機能しない、またはbashのCtrl
+矢印などの古典的な問題があります。または、最近遭遇した問題です。新しいDebianインストールでは、@
キーが実際に"
を出力し、"
が@
を出力します(キーボードレイアウトが間違っていますか?)
ファイルとツールを見ただけではあまり役に立ちません。 inputrc? xmodmap? setxkbmap? console-setup?実際にはどこから始めればよいですか理解仕組みキーボードの問題を修正するために誰かの怪しいコマンドを試す必要はありませんか?
これは本来あるべきよりもはるかに複雑ですが、これが私の試みです。
最も基本的なレベルでは、カーネルはキーボードデバイスを認識する方法を知っており、 console keymap の概念を理解しています。これはキーボードを設定する最も簡単な方法であり、考慮すべき変数は1つだけですが、これらの設定はLinuxテキストコンソールでのキーボード入力にのみ影響します。
Xorgに入ると、物事は少し複雑になりますが、実際には一種の理にかなっています。 Xorgには、理解することが非常に重要ないくつかの特定の概念があります。
InputClass
セクション(新しいバージョンのXorgの場合)またはInputDevice
セクション(古いリリースの場合)内でXkbLayoutを指定する必要がある場合があります。Shift_L
を生成します。XkbOptions
(通常、/usr/share/X11/xkb/rules
に格納されている完全なリスト)を使用して、レイアウトの切り替え方法を構成できます。 (たとえば、自分でDvorakを教えようとしている場合や、英語とロシア語のキーボードレイアウトを切り替えたい場合に便利です)。xmodmap
を使用すると、保持されている修飾子に基づいて、どのキーイベントが送信されるかを確認できます。最近では、コンソールとXは実際に連携して動作します。
これが完全に標準化されているかどうかはまだわかりませんが、Debian Unstable(およびおそらく最新のXorgとコンソールツールを備えた他のディストリビューション)では/etc/default/keyboard
を使用すると、Xスタイルの構文を使用して、コンソールとXでキーボードを設定できます-少なくともconsole-toolsとconsole-setupを使用している場合。残りはcleeが説明したとおりです。
Vimでバックスペースが機能しないなどの古典的な問題があります...
おそらく、現在のエディションで入力した文字だけをバックスペースで削除するvimの動作について話しているので、編集モードに入る前にすでに存在している文字で削除できないようにしています。
その振る舞いは次の設定で変更されます:
set backspace=indent,eol,start