以前から記事にしようと思っていた効率的なカーソル操作ができるキーバインドのネタをようやく公開。
プログラムを書くプログラマーだけでなく、文章を書く人にも便利かもしれません。
さて、このキーバインドの考え方としては、
- オンラインゲームでのWASDキーによる移動
- viのカーソル移動
- viによるモードの切り替え
を着想としています。
基本的な考え方は3つです。
- Ctrlを押しながらキーを押すと、カーソルの操作ができる(カーソルを"コントロール"するイメージ)
- さらにShiftを押すと、文字列を選択できる
- Ctrl + Alt (+ Shift) を押しながらキーを押すと、削除できる
カーソルの移動は、ijkl です。それに加え、u と o を加えます。
Ctrl + i (上)
Ctrl + j (左)
Ctrl + k (下)
Ctrl + l (右)
Ctrl + u (行頭へ)
Ctrl + o (行末へ)
この組み合わせに、Shift 及び Alt を追加すれば快適なカーソル操作ができるようになります。
無変換キーに半角/全角キーを登録するとさらに快適です。
今回は AutoHotkey のスクリプトにて最終的なものを紹介しますが、 お使いのソフトに登録してみてください。
実行環境
Windows7
AutoHotkey: v 1.0.48.03(Revision 30 - May 31, 2009)
日本語キーボード
AutoHotkeyはこちらからダウンロードします。最新のものをダウンロードすることをお勧めします。
https://autohotkey.com/
"keyboard.ahk"
/**
* キーバインド
*
* "^" = Ctrl
* "!" = Alt
* "+" = Shift
*/
SendMode Event
;SendMode Play
;SendMode Input
;SendMode InputThenPlay
; 十字キーの移動(Ctrl + キー)
^i::Send {UP}
^j::Send {LEFT} ;←キーを割り当て
^l::Send {RIGHT}
^k::Send {DOWN} ;↓キーを割り当て
^u::Send {HOME}
^o::Send {END}
; 十字キーの選択移動(Ctrl + Shift + キー)
^+i::Send +{UP}
^+j::Send +{LEFT} ;←キーを割り当て
^+l::Send +{RIGHT}
^+k::Send +{DOWN} ;↓キーを割り当て
^+u::Send +{HOME}
^+o::Send +{END}
; eclipse;うまくいかないのでeclipse側でコマンドを変更することにした
;^+!o::Send ^+o
;return
; 削除(Ctrl + Alt (+ Shift) + キー)
^!l::
KeyWait Alt ;Altキーを離すまで実行されないようにすることで問題を回避
Send {DEL} ;Ctrl+Alt+Deleteとなりタスクマネージャが起動してしまう
return
^!j::Send {BS} ;Backspace
^!+l::Send {DEL} ;削除
^!+j::Send {BS} ;Shift + Backspace では動かないので{BS}のみ
; 無変換
sc07B::vkF3sc029 ;半角/全角
; カタカナ ひらがな
sc079::Send {BS}
; Ctrl + n
^n::Send {F2} ;名前の変更
AutoHotkeyのバージョンが古いので、新しいバージョン(1.1.23.01)では、上記コード内に記述しているeclipseや削除部分での問題は解決しているかもしれません。
2010年当時には、参考にした日本語サイトが閉鎖したのでAutoHotkeyはもう更新されないと思っていたのですが、まだ開発を続けているみたいですね。
上記コードでは、カタカナ ひらがなキーを Back Space に置き換えていますが日常で使っていませんでした。同じようにCtrl + n で名前の変更できるようにしていましたが、こちらも使用していなかったのですが、今後活用してみようと思います。
最後に、このキーバインドに慣れると、他の人のPCを操作するときに不便に感じることがありますので、用法をお確かめの上ご利用ください。
ThinkPadのトラックポイントと組み合わせるとさらに効果的です。