2014/01/01(水)yamy(Yet Another 窓使いの憂鬱)でどこでもhjklカーソル移動

はてブ数 2014/01/01 16:18 計算機な日記::ボクと計算機つーさ

あけましておめでとうございます。
本年も何卒よろしくお願いいたします。

日本で英語キーボードというとどうしても選択肢が限られてしまい、
最近のノートパソコンではキーボード配列を選べないことも多くなってきました。
キーボード配列ひとつで好きなノートPCが選べないのはもったいないですし、
かといってやはり記号を多く入力するプログラマにとって英語配列の魅力は捨てがたい。
結局、109日本語キーボードを104英語配列ドライバで動かすことに落ち着いているつーさです。

記号キーはキーボードに書いてある文字と違うものが出るので最初は戸惑いますが、
慣れてしまえばキーボードを見ることなんてないのでこれはこれで幸せです。

さて、タイトル。

文字を書いてるとき、ログを眺めてるとき、hjklでカーソル移動したいです。
前々から気になっていたyamyでのremapに挑戦。
http://knoike.seesaa.net/article/356046428.html

yamy は 窓使いの憂鬱の親戚で、
LLキーボードフックを使ってキーの入れ替えをしてくれるツールです。

カーソル移動と通常入力のhjklをどう区別するのか?
Visual Studio使ってるときはいろんなショートカットがあるので、
Alt+とかCtrl+Shift+とかも使いたくないわけです。

日本語キーボードのメリットは、いらないキーがたくさんついてることです。
そう、左手の親指のところにちょうどいいキーがあるじゃないですか。

_人人人人_
> 無変換 <
 ̄Y^Y^Y^Y ̄

CtrlもAltもShiftも汚さないような、しかも普段使わないようなモディファイア……?

_人人人人人_
> Caps Lock <
 ̄Y^Y^Y^Y^Y ̄

mayuには、モディファイアCapsLockやNumLockの状態に応じて、
キーを置き換える機能があるのでこれを使ってみることにします。

# ちなみに、後で知ったのですが、
# CapsLockやらNumLockやらカナロックやらを使わなくても、
# mayuには汎用のロック可能なモディファイアがあるようです。
# 編集モードとか挿入モードくらいなら作れそうですねー。


無変換キーを押すとCapsLockがon、無変換キーを離すとCapsLockがoffに(もはやLockでも何でもない)、
さらに、CapsLock Onのときは、hjkl+αのキーが素敵なキーに変化するようにしてみました。

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 窓使いの憂鬱 - dot.mayu
# Copyright (C) 1999-2005, TAGA Nayuta <[email protected]>
#

# まずキーボード定義を読み込む
if ( USE104 )
  include "104.mayu"		# 104 キーボード設定
  if ( USE109on104 )
    include "109on104.mayu"	# 104 キーボードを 109 キーボード風に
  endif
else
  include "109.mayu"		# 109 キーボード設定
  if ( USE104on109 )
    include "104on109.mayu"	# 109 キーボードを 104 キーボード風に
  endif
endif

if ( USEdefault )
  include	"default.mayu"	# Emacs ライクなさまざまな設定
endif


# このファイルをホームディレクトリにコピーしてから、
# 以下に自分の好みのキーバインディングを設定するとよい。

keymap Global

# kbd101.dll を使ってない場合は S-英数
key D-*無変換 = 英数
key R-*無変換 =
key U-*無変換 = 英数

key CL-*H = *Left
key CL-*J = *Down
key CL-*K = *Up
key CL-*L = *Right
key CL-*_6 = *Home
key CL-*_4 = *End
key CL-*_0 = C-*Home
key CL-*G = C-*End
key CL-*U = *PageUp
key CL-*D = *PageDown

key CL-*X = Delete

key CL-半角/全角 = M-半角/全角
key CL-*Semicolon = &LoadSetting()

そしてvim操作に帰れなくなる気がする。