About Vim keybind for Dvorak.
私は、テキストエディタとしてvimを使っている。
私は、キーボードの配列としてDvorakを使っている。
この二つは、ここの評価自体はそんなに悪いものではない、というか一部に熱狂的なファンがいるコアな存在。
尖がった奴らです。
しかし、いかんせんこの二つは相性が悪い。
Dvorakとvimの相性が悪い理由。
単純にvimのキーバインドがqwertyに最適化されたものであるからである。
hjklでカーソル移動が出来たものも、qwertyを離れた瞬間にその美しさを失う。
考察?
以下のリンク先で、Dvorak,Qwertyそれぞれのキーバインドの一覧シートが公開されている。
vi/vim tutorial
http://boredzo.org/vi_tutorial/
以下のリンクでは、Escの入力方法について考察してある。
https://bbs.archlinux.org/viewtopic.php?pid=524624
現状の把握。
現状私は、窓使いの憂鬱を使い、CapsLockつまりAの脇にCtrl兼Escを配置している。
#CapsLockキーに、Ctrl機能を割り当てる。 #通常押下時は、Escキーに置換。 #Ctrlキーとして使う際(キーリピート時)は、Escを出力しない。 mod ctrl += !!CapsLock key *CapsLock = *Esc key R-*CapsLock = *LeftControl #RightControlをCapsLockにする。 mod ctrl -= RightControl mod ctrl += !!RightControl key *RightControl = *CapsLock
ワンショットモディファイヤを利用しているところがポイント。
これで、単打時はEsc、長押しやコンビネーション時はCtrlとして機能することになる。
ただし、この方法ではEscとのコンビネーションが出来なくなるためオリジナルのEscキーは生かしてある。
あと、カーソルキーが左手に欲しかったため、左手esdfの位置にカーソルキーを配置してみた。これが案外快適であるが、いちいちSpaceを押さなければいけないのが億劫だし、これだとVimのコマンドモードというものの意味合いが薄れる。
#esdfダイヤモンドカーソルとする。 mod mod0 += !!Space key M0-*e = *Up key M0-*d = *Down key M0-*s = *Left key M0-*f = *Right key M0-*a = *Enter key M0-*q = *BackSpace key M0-*w = *Delete key M0-*i = *PageUp key M0-*k = *PageDown key M0-*j = *Home key M0-*l = *End
この方法の良い点は、ソフトによらずspace押下時に別モードを用意することが出来るという点だ。
すなわち、vimのキーバインドをこの方法で定義しておけば他のソフトにおいても擬似的にvimのキーバインドを利用することができる。
今後。
今は、spaceキーで別モードを用意している状態である。
別モードを用意する代わりにVimのキーバインドとDvorakの相性の悪さには目を瞑っているのだ。
しかし、
VimがEmacsをはじめとした多くのソフトウェアとは違い、
"完全モーダブルなコマンドモードを用意しているという利点を生かす"ためには、
ネイティブなリマッピングを行うのが最良であろう。
今後折を見てリマッピング作業に取り掛かることとする。
追記
通常のカーソル並びをダイヤモンドカーソルっていうと思ってました。。。
esdx系をダイアモンドっていうのですね。
esdf,wasd系はなんていうのでしょうか。。。