にわかVimmerはエルゴノミクスの夢を見るか?: キー入力環境最適化への道 ver. 0.2
- 追記(2009-12-04): ひらがな変換についての記述、およびGoogle日本語入力を利用した際の設定について追加。
私のキーマップ変更with KeyCtrl and XKeymacs - 学習する機械、学習しない人間に引き続き、キー入力環境をどのようにすれば、快適なテキスト入力が行えるか、という話。
自分にとって最も快適な配置を目指して、今日も試行錯誤は続く。前回から(というか日々)設定は大幅に変わっております。
自分の試行錯誤の結果を書いています。自分と似たような環境にある人には、参考になるかもしれません。
本稿の用語
- キーマップ(キーレイアウト)
- キーボードの物理的な各キーと、それらに実際に割り当てられているキーの組
- コマンド割り当て
- "検索"、"削除"、"ファイルを開く"、"コピー"などのコマンドに割り当てられているキーボードショートカット
目標設定
- 目標
- 自分にとって快適なテキスト入力を行えるキー入力環境(キーマップとコマンド割り当て、IMEキー設定の三つ)を構築すること。具体的には、可能ならば Vi キーバインド。無理なら Emacs キーバインド。
- 利用するS/W, H/Wの条件
- OSはWindowsXP。IMEはMS-IME(またはGoogle日本語入力)。メインのテキスト入力はgVimで。他はFirefoxやTween、Thunderbirdなどで、比較的長いテキストの入力を行う。
上記の最終目標を達成するために、以下の小目標群を挙げる。
- (2) なるべくホームポジションから手を動かさないような配置をめざす
- 快適なキーボード操作のためには当然必要。
- (4) 既に存在して、よく使うコマンド*5を上書きすることはなるべく避ける
- 競合が起こると面倒なので、なるべくあまり使わないコマンドに新しい操作を割り当てるようにする。
それでは以下、これらの目標を満たすために、どのようなことを行ったのかを書く。
目標を満たすための環境設定
利用ツール
利用するツールはXKeymacs。フリーで手に入る、使いやすい、これ一つでキーマップ変更とコマンド割り当て変更の両方が行える、などが理由。
利用するキーボード
標準的な日本語キーボードを想定する。
理由は二つ。(1)手に入りやすいし、どこでもこれが使われている。(2)スペースキーの左右に無駄なキーがたくさんあって、これらに自分の好きなようにキー割り当てできる。
環境設定の基本方針
上記の小目標群を満たすようにと考えたキー入力環境設定の基本方針は、以下にようになる。
新しいキーレイアウト
Xkeymacsで以下のように設定する。
新しいコマンド割り当て
Xkeymacsで以下のように設定する。
- テキスト入力を比較的多く行うアプリケーション(Firefox, Thunderbirdなど)
- IME切り替え --> C-o
- BackSpace --> C-h
- Delete --> C-d
- 行頭、行末、前の行、次の行、前の文字、次の文字 --> C-a, C-e, C-p, C-n, C-b, C-f
- 全て選択 --> C-r
- 検索 --> C-g
MS-IMEキー設定
「プロパティ --> 全般 --> 設定 --> キー設定」から、以下のようにユーザ定義を行う。
- 文節を短くする --> C-s (Short)
- 元々 Shift - ← に割り当てられていた機能を、C-sにも割り当てればよい(以下同じ)
- 文節を1長くする --> C-l (Long)
- デフォルト
- ひらがな変換 --> C-g (hiraGana)*8
- F6の機能をC-gにも割り当てる
- カタカナ変換 --> C-k (kataKana)
- F7の機能をC-kにも割り当てる
- 前の文節へ移動 --> C-b (Back)
- C-sの機能をC-bにも割り当てる
- 次の文節へ移動 --> C-f (Forward)
- C-dの機能をC-fにも割り当てる
新しい環境設定は快適か
以上の設定によって、キー入力環境は快適になったか。各小目標にも触れつつ、見ていこう。
カーソル移動
Vimでのカーソル移動は快適そのものである。
Firefoxなどでのテキスト入力では、Emacsライクな移動手段を使える。これもなかなか快適である。
なお、検索(C-f)と全て選択(C-a)が上書きされてしまったので、別のコマンドを割り当てておく。これは快適性が少し下がるが、我慢する。
削除
どのアプリケーションでもC-h, C-dで削除を行える。
手が勝手にBSキーやDelキーを押してしまうことを想定して、これらのキーはそのまま残している。
決定・日本語変換
セミコロンキーでEnter、C-oでIME切り替え、この2つによって、決定・日本語変換を手を動かさずに行える。
セミコロンキーがつぶれたので、代わりに変換キーにセミコロンキーを割り当てる。セミコロンの位置が変わってしまうが、我慢する。
Enterキーと半角/全角キーも、勝手に動いてしまう手のために残しておく。
また、IMEの機能に、その機能の頭文字を表すキーバインドを割り当てることで、直感的かつ手の動きの少ない日本語入力を可能にしている。
ところで、Enterのコマンドについては、どういう割り当てにするか一番悩んだ。どこに持ってきても「これだ!」という位置がなく、未だに悩んですらいる。
Enterは、C-;, C-j, C-mなども考えたのだが、「元のEnterキーと同じように右手小指を使う」「右手だけで押せる」ほうが良いと考え、セミコロンキーに割り当てることにした。
また、日本語切り替えも、C-\などの候補があったが、ホームポジションからの手の動きが少ないC-oのほうを採用した。
つぶれたキーのアフターケア
セミコロンという、それなりによく使うキーの位置が変わってしまった。とはいえ、この一つだけなら我慢できる範囲である。
まとめ
以上、キー入力環境の改善策について見てきた。
Vimについては、基本的にはVimの操作体系を尊重し、それを支援するような設定(「無変換キー --> Escキー」など)を行った。
その他のアプリケーションについては、Xkeymacsによって、移動、削除などの最低限のEmacsライクな操作体系を導入した。むやみに新しい割り当てを導入すると、既存のコマンド割り当てとの競合の解消が面倒になるので、自分が最低限必要と考えるものだけを取り入れるのが上策である。
一部のキーやコマンドがつぶれてしまっているが、ごく少数であり、我慢できる範囲内である。
快適な環境を目指して試行錯誤した結果、VimとEmacsの操作体系に集約された、ということは、自分にとって、この2つの操作体系が体にしみついている、ということなのだろう。