Home > 備忘録 > vi-like カーソル移動

vi-like カーソル移動

  • Posted by: y-iihoshi
  • 備忘録

vi に慣れ親しんでる者としては,他のアプリケーションを使っている時でも カーソル移動の際についつい {hjkl} を押してしまう.ホームポジションから遠い位置にあるカーソルキーなんて使いたくない.HHKB Pro2 を使ってるなら なおの事.

そんならキー割り当ての変更か何かで対処しちまおう,と.でも流石に {hjkl} をそのままカーソルキーとしてマッピングするわけにはいかんので,例えば Ctrl+{hjkl} のようなもので代用しよう,と.そういうことで,xmodmap を使って実現することにした.

xmodmap(1) の EXPRESSION GRAMMAR の項を読むと,1 つのキーコードに対して最大 8 つ (事実上は最大 4 つ) のキーシンボルを割り当てることができ,modifier key なし,Shift 同時押し,Mode_switch 同時押し,Mode_switch + Shift 同時押しの場合のシンボルを割り当てられる,とある.この Mode_switch が HHKB Pro2 (HHK mode) ではどのキーに割り当てられているのかを知るべく,xmodmap -pkexev の出力を見てみたが,キーコードが 93 (10 進) であることしか分からなかった.使われてないのかもしれない ?

ならば,俺が事実上使っていないキーを Mode_switch として割り当て,Mode_switch+{hjkl} でカーソル移動を実現すれば良いか,ということで,以下を ~/.Xmodmap として作成・保存.割り当てるキーには左◇キー (キーコード 131 (10 進)) を選択した.


! for vi-like cursor moving
keycode 131 = Mode_switch
keysym h = h H Left
keysym j = j J Down
keysym k = k K Up
keysym l = l L Right

それから,俺は kdm を使って KDE を起動してるんで,~/.xprofile から ~/.Xmodmap を読み込むように以下を追記.


if [ -f "${HOME}/.Xmodmap" ]
then
    xmodmap "${HOME}/.Xmodmap"
fi

これで Fn+{;[/'} を使わずに済むようになった.どっちも同時押しという点では変わらないんだけどね.実際に今書きながら使ってみると,左◇キーは左小指よりも左親指の方が押しやすいかなー と思った.昔短期間ながら習ったピアノの指使いがこんな所で役立つとは….


いわゆる PageUp/PageDown を追加.vi では Ctrl+{bf} ということで以下のように定義.


keysym b = b B Prior
keysym f = f F Next
  • キーシンボルが Prior/Next
  • Next の対は Previous なんだろうと思ってたら実は Prior だった

という事を初めて知って驚いた.

Comments:3

lee sewoo

こんにちは。
私は韓国人であり、翻訳を使用して文を書いています。

Mode_switch +(hjkl)についての情報は本当に助けてくれたされています。

質問がありますが。

もしかしたら日本語Modeで正しく動作するかを知りたいです。
私は韓国語Modeで動作がされないため、解決方法を探していますが、
似ているだろうとセンガクドゥェソ質問いたします。

もう一度情報に感謝しています。

y-iihoshi

コメントをありがとうございます。
返信が遅れて申し訳ありません。

最近 xmodmap を使っていなかったので、今日調べてみました。
その結果、残念ながら、日本語modeでは正しく動作しませんでした。

動作確認環境:
kubuntu 9.10
ibus 1.2.0.20091014-1~ppa1~ja2
ibus-anthy 1.2.0.20090813-2ubuntu1~ppa2
anthy 9100h-0ubuntu2~ppa2

Input method が Mode_switch を non-modifier key として扱っているためではないか、
と私は推測しています。
(The reason may be the input method will treat Mode_switch as a non-modifier key, I think....)

lee sewoo

Thank you for your information again.
Happy new year.

Home > 備忘録 > vi-like カーソル移動

Search

Feeds

Return to page top