ミームの死骸を待ちながら

We are built as gene machines and cultured as meme machines, but we have the power to turn against our creators. We, alone on earth, can rebel against the tyranny of the selfish replicators. - Richard Dawkins "Selfish Gene"

We are built as gene machines and cultured as meme machines, but we have the power to turn against our creators.
We, alone on earth, can rebel against the tyranny of the selfish replicators.
- Richard Dawkins "Selfish Gene"

Hash流"思考の速度"キーバインド (ver20080917)


思考の速度でパソコンを使う技術 - 分裂勘違い君劇場
このエントリにあるように、id:fromdusktildawn氏はVim, Emacsのどちらも使わず、ホームポジションからできるだけ動かないという戦略に基づいて独自のキーバインドを構築したらしい。今も続けているのかどうかわからないけど、もはや身体の一部となったパソコンに独自の変態キーバインドを設定するのは楽しいものだ。


ふろむださんの"思考の速度でパソコンを使う技術"は、次の三つに大別される。

  1. 高速カーソル移動と編集
  2. 日本語入力
  3. 遠いキーを近くへ

これを参考に、自分なりの高速キーバインドを模索してみた。まだ途中。

  1. 高速カーソル移動と編集
    • 一つ目は、ほとんどの文字書きをVim上で行うため、大方解決されている。
  2. 日本語入力
    • 二つ目は、変換途中のカーソル移動をVimライクな移動キーに割り当ててみた。
  3. 遠いキーを近くへ
    • 三つ目は、窓使いの憂鬱のロック機能を使い、特殊入力モードを設けることで対応した。
    • (変更)=>Altキーとの同時押しで数字、記号キーを近くに持ってきた

この高速キーバインドを実現するために使ったソフトはmayuこと窓使いの憂鬱。おそらくfromdusktildawnさんが使ったのもこれだと思う。


1. 高速カーソル移動と編集

ふろむださんの論じているカーソル移動、編集のあれこれは、Vimになれた身体で代用。VimかわいいよVim。以下、その他の設定。

これは使いやすい。

今回いろいろ探していて初めて見つけた。設定したもののあまり使わない。

セミコロンをエンターに...しない

変態キーバインドとして有名なものに、セミコロンをエンターに割り当てるいうものがあるらしいが、AZIKのセミコロン=「っ」, コロン=「ー」設定と混ざるので弄るのはやめておいた。


2. 日本語変換環境

S-hとS-lで変換範囲を選択し、S-jとS-kで文節を選ぶ。変換中はシフトを離してはいけない感じになった。なお、僕の場合はIMEの日本語入力/英字入力の切り替えを、Windowsで親指シフト入門 + Tex編集環境 + IME切り替え設定 - ミームの死骸を待ちながらで書いたように

  • Ctrl + 無変換 で英字入力
  • Ctrl + 変換 で日本語入力

に設定している。


3.遠いキーを近くへ

ver.2

数字を連続して打つことは少ないので、いちいちモード切替えすると逆に手間がかかる。そこで、Altを押しながらホームポジションキーを押して数字や記号を入力するように設定しなおした。

ver.1

mayuのロック機能でモード切替をして、かなキーを押すと特殊入力モード。ホームポジションから数値が入力できるようにした。ホームポジションの一段上は、それぞれの数字キーにShiftを押しながら入力すると出てくる記号を当てた。右手の中指、薬指は括弧系を担当してもらい、小指には、ちょっと遠いマイナス記号*1とイコールを当て、上側のPキーには\マークと|を担当してもらった


.mayuファイルver.2(2008年07月31日)
include "109.mayu" # 109 キーボード設定

keymap Global

# <C-h> を <BS>, <C-m>を<Enter>
# MS-IMEのC-Hに当たるキーが邪魔してるので削除しておいた
key C-H = Backspace
key C-M = Enter

# 親指シフト使わなくなったので、IMEの方で単体で変換機能つけた
# key C-変換 = $ToggleIME
# key C-無変換 = $ToggleIME

# 「ろ」キー通常押しで"_"
key ReverseSolidus = S-ReverseSolidus
key A-ReverseSolidus = S-ReverseSolidus
 

# ホームポジションを数字に
key A-A = _1
key A-S = _2
key A-D = _3
key A-F = _4
key A-G = _5
key A-H = _6
key A-J = _7
key A-K = _8
key A-L = _9
key A-Semicolon = _0

key IC-A-A = _1
key IC-A-S = _2
key IC-A-D = _3
key IC-A-F = _4
key IC-A-G = _5
key IC-A-H = _6
key IC-A-J = _7
key IC-A-K = _8
key IC-A-L = _9
key IC-A-Semicolon = _0
# ホームポジションの一段上を記号に
key A-Q = S-_1
key A-W = S-_2
key A-E = S-_3
key A-R = S-_4
key A-T = S-_5
key A-Y = S-_6
key A-U = S-_7

# 右中指、薬指はカッコ系
key A-I = LeftSquareBracket # io -> []
key A-O = RightSquareBracket
key A-S-I = S-LeftSquareBracket # IO -> {}
key A-S-O = S-RightSquareBracket
key A-S-K = S-_8 # KL -> ()
key A-S-L = S-_9

# 小指を右にやるとマイナスとイコール.
key A-Colon = HyphenMinus
key A-S-Colon = S-HyphenMinus
# 上にやるとバックスラッシュ
key A-P = YenSign
key A-S-P = S-YenSign

# IME 変換中もhjkl
# IL- IME on, IC- IME変換中.
# ver.2: 姫踊子草の「っ」が使えなくなるのでコメントアウト
# key IC-S-H = S-←
# key IC-S-J = →
# key IC-S-K = ←
# key IC-S-L = S-→
# key IC-Semicolon = Tab


#////////////////////// Explorer //////////////////////
##keymap2, 二段目key, window。この順番が大事らしい。というか最初二つは定義か
#keymap2 vimode-goto
#	key G = Home
#window Explorer /Explorer\.exe.+(?:(?!WorkerW).)*/ : Global
#	#mod ctrl += 英数
#	#key *英数 = *LeftControl
#
#	# まずい。このままではフォルダ名編集で次の文字が使えない
#	# のみならず、ThumbSenseも無効化され大変まずいなどする
#	# (案)Explorer開いたら自動でロックかかり、iで解除とか。
#	key J   = ↓
#	key K   = ↑
#	key H   = ←
#	key L   = →
#	key S-H = BackSpace
#	key S-G = End
#	key G   = &Prefix(vimode-goto)
#	key D   = Delete
#	key U   = C-Z # なぜかうまくいかない
#
#	key Q   = A-F4
#
#


#////////////////////// Eclipse //////////////////////

# Eclipse 上でviモードのテストを行う。切り替えキーの問題が解決したらexplolerでも 
window Eclipse /eclipse\.exe/ : Global
	# cannot use eisuu key???  key *英数 = *ctrl
	key ~L1-C-Space = &Toggle(Lock1, on)
	key L1-I = &Toggle(Lock1, off)
	# invalid key name??? key C-_LeftSquareBracket = &Toggle(Lock1)
	
	# visual modeをLock2にする。移動系は~L2をつけることになる

	key L1-H = ←	
	key L1-J = ↓	
	key L1-K = ↑
	key L1-L = →	

	key L1-S-_4 = End
	key L1-_0 = Home

	# Yunc mode
	keymap2 vimode-Yunc #":vimode"がついている // Prefixより先にkeymap2群記述する必要
		key Y = Home Home S-↓ &Wait(50) C-C ↑

	key L1-Y = &Prefix(vimode-Yunc)



### 没 ###

# Ver.1 ロックキーver
# key Semicolon = Enter
# key C-Semicolon = Semicolon

# かなキーで特殊入力モードに移行

# key ひらがな = &Toggle(Lock0,on)
# key C-ひらがな = &Toggle(Lock0,off)

# keyseq $MODE_OFF = &Toggle(Lock0,off) # &Toggle(Lock1,off)
# key L0-Space   = $MODE_OFF
# key L1-Space   = $MODE_OFF

# Escすると特殊入力モードも終了。C-@がうまくいかない
# key L0-ESC = &Toggle(Lock0,off) ESC
# key L0-C-CommercialAt = &Toggle(Lock0,off) &Sync ESC

親指シフトもある

僕の場合は、上記の変態キーバインド親指シフトも考慮して混ぜようと思っている。衝突する部分は回避する必要があるし、左右シフトに割り当てるため裸のまま残してある変換・無変換キーを無駄にしてはいけない。
現在、ちまちま練習を始めて一ヶ月くらいか? 中学生のころと同じくらいの速度でタイプできている気がする。まだまだですね。ぱぴぷぺぽが覚えられんorz


*1:AZIK配列からの連想