正確にあなたが求めているものではありませんが、ほぼ...
xmodmap
コマンドを使用して、Xキーボード設定を再マップできます。次のコマンドを実行すると、現在の設定を確認できますxmodmap -pke
各キーコード(キーボードのすべてのキーに関連付けられた値)には、最大8つのキーシム(基本的には出力)を接続できます。それらは次のとおりです。
- 自分で押すと
- シフトで押すと
- モードスイッチを有効にして押すと(廃止されたようです)
- モードスイッチとシフトで押すと(廃止されたようです)
- Alt-Gr(xmodmap用語ではISO_Level3_Shiftとも呼ばれます)を押した場合
- Alt-Grとシフトで押すと
現在、私の「h」キーは次のようになります。
h H h H hstroke Hstroke
ここで、Hstroke keysymはproducesを生成します。
Alt-Grを使用してASCII以外の文字を入力している場合を除き、Alt-Grを使用してh、j、k、lを再マッピングし、必要な操作を行うことができます。これは:
xmodmap -e 'keycode 43 = h H h H Left Hstroke'
xmodmap -e 'keycode 44 = j J j J Up J'
xmodmap -e 'keycode 45 = k K k K Down ampersand'
xmodmap -e 'keycode 46 = l L l L Right Lstroke'
もちろん、シフトエントリを持つAlt-Grは厳密には必要ありません。すでに存在する値を保持しているだけです。xev
端末からコマンドを実行して、キーコード値を見つけることができます。xev
Xイベントを表示するので、キーを押してその情報を見つけることができます。
この設定を永続的にするには、ホームディレクトリの.Xmodmapに以下を追加できます。
keycode 43 = h H h H Left Hstroke
keycode 44 = j J j J Up J
keycode 45 = k K k K Down ampersand
keycode 46 = l L l L Right Lstroke
Alt-Grを押すことは、確かにhjklを使用するときにAltを押すことほど良くありませんが、メニューへのアクセスに使用されるため、Altだけを機能させるのに苦労するかもしれません。この回答の情報とFraekkertが言及したツールを使用して、代わりにAlt-Shift-hなどをバインドすることができます。
を使用して、bash(または使用するシェル)でviモードを設定できることにも注意してくださいset -o vi
。これにより、コマンドラインと履歴を編集するときのviのような動作が得られます。私はこれがあなたの.vimrcを見ているとは思わないので、キーの再マッピングが機能することを期待しないでください。