LoginSignup
2
2

More than 5 years have passed since last update.

etypingでDvorakJPを使う

Posted at

はじめに

540px-KB_United_States_Dvorak.svg.png
(wikipediaの画像より)

Dvorakjpはdvorak配列を日本語向けに拡張したものです(下の記事が詳しい)
https://alpha.mixi.co.jp/entry/2012/10806/
しかし etyping等のタイピングサイトで使えないという弱点があります

ciを「き」に変換したり
hnaを「ひゃ」に変換する事がサイト上で出来ないからです

なのでautotkey(キーの入力に対して処理を割り当てられる)を使って
etypingでDvorakJPを使えるようにしました

実装と説明

やりたいことは

1:か行をcで補う
2: 左下でan on en un inを打てるようにする
3: 左上でai ou eiを打てるようにする
4: yを使うものをhやnで代用する
pha → ぴゃ
rha → りゃ
nha → にゃ
zha → じゃ

gna → ぎゃ
cna → きゃ
hna → ひゃ
tna → ちゃ
bna → びゃ
mna → みゃ

1はcをkに置き換えれば出来て、23もそれらを置き換えれば出来ます
4も直前に打たれたキーによってh,nをyに置き換えれば出来ますが
nhaの時だけ注意が必要です
nnhaの時には「んや」ではなく「んは」と打たれるようにしたいからです
なのでnが2連続である場合にはhをyに置き換えないようにします

nmaeは直前のnが子音として残っていたらtを
なければfを代入しています
A_PriorKeyは直前に打たれたキーです

#MaxHotkeysPerInterval 200

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
SetTitleMatchMode,2
#InstallKeybdHook
#UseHook


nmae = f

n::
    if( A_PriorKey ==  "%" || A_PriorKey == "q" || A_PriorKey == "j" || A_PriorKey == "k"|| A_PriorKey == "x" || nmae = "t")
    {
        nmae = f
        send,{n}
    }
    else if(A_PriorKey == "g" || A_PriorKey == "c"|| A_PriorKey == "h"|| A_PriorKey == "t"|| A_PriorKey == "b"|| A_PriorKey == "m")
    {
        nmae = f
        send,{y}
    }
    else
    {
        nmae = t
        send,{n}
    }
    return
a::
    nmae = f
    send,{a}
    return
o::
    nmae = f
    send,{o}
    return
e::
    nmae = f
    send,{e}
    return
u::
    nmae = f
    send,{u}
    return
i::
    nmae = fh
    send,{i}
    return

c::send,{k}
h::
    if(A_PriorKey == "p" || A_PriorKey == "r"|| A_PriorKey == "z")
        send,{y}
    else if(nmae = "t")
        send,{y}
    else
        send,{h}
    return
;::
    send,{a}{n}
    return
q::
    send,{o}{n}
    return
j::
    send,{e}{n}
    return
k::
    send,{u}{n}
    return
x::
    send,{i}{n}
    return
'::
    send,{a}{i}
    return
,::
    send,{o}{u}
    return
.::
    send,{e}{i}
    return

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2