« AutoHotkeyを使いはじめる(Thu Dec 05, 2013) | トップページ | vi/vim の f (find) と t (till) コマンド (Mon Mar 31, 2014) »

2014年10月31日 (金)

DvorakJのAutoHotkeyスクリプト版を動かす(Sun Dec 08, 2013)

DvorakJのAutoHotkeyスクリプト版を動かす(Sun Dec 08, 2013)

Time-stamp: "Sun Dec 15 10:35:53 JST 2013"

私は、テキストエディターvimのかな漢字変換にSKKを使っている。かな漢字 変換SKKを使いやすくするためにキー入れ換えソフトのDvorakJを入れてい る。DvorakJで実現できるSandSという機能を使いたいからである。

SandSの名前はshiftとspaceの頭文字に由来する。スペースキーを押しなが ら文字キーを押すとキーの上段の文字(アルファベットならその大文字、数 字なら記号)が入力されるようにする。スペースが単独で押されたときはス ペースを出力する。

SandSではスペースのリピート(連続)入力が難しくなる。スペースを押して いる間は次のキーが押されるのを待つからである。スペースキーを離した時 点でスペースが出力されるようになる。SandSを使わなければ、スペースを 押し続けると空白が連続して出力される。

日本語をローマ字入力するときシフトキーを使うことはない。英文作成(打 ち込み)では、一文の最初の文字を大文字にするだけでシフトキーの出番は 少ない。ところでシフトキーはキーボードの左右に一つずつある。タッチタ イピングでシフトキーを担当するのは小指である。左右のシフトキーの使い 分けは、左手の親指を除く四本の指のどれかで文字キーを押すときは右手の 小指でシフトキーを押す。文字キーを右手で押すときのシフトキーは左手小 指で押す。片方の手指二本で文字キーとシフトキーを同時に押してはいけな いというのがタッチタイプの掟(おきて)である。

タッチタイプの練習しはじめは、左右どちらの小指でシフトキーを押すべき かで一瞬迷う。英文なら文頭のみ大文字だから、それほど気にならない。 NHKのような頭字語(acronym、アクロニム)は少ない。一文すべてが大文字な らcapslockを使う。

英文書きにシフトキーの出番は少ない。そして、日本語のローマ字入力では まったく出番がないといってよい。かな漢字変換のSKKは、日本語のローマ 字入力でシフトキーを使うことがないことを利用する。

漢字に変換したい仮名文字列の最初の仮名に相当するローマ字の最初をアル ファベットの大文字にする。例えば、「にほん」を「日本」に、かな漢字変 換したいならローマ字入力で「Nihon」と打つ。そうすると画面に「▽にほ ん_」と表示される。アンダーバーはカーソル位置である。ここで変換キー であるスペースキーを打つと「▼日本_」に換わる。もう一度スペースキー を押すと次の候補の「▼二本_」に換わる。どちらかの候補が出ているとき にEnterキーあるいはCtrl+jを押すと確定する。

漢字に送り仮名があるときは、送り仮名の始まりの仮名に相当するローマ字 の最初のアルファベットを大文字にする。例えば、「はなす」を「話す」に 変換したいなら「HanaSu」と入力する。そうすると「▽はな_」→「▽はな *s_」→「▼話す_」のように表示が変わってゆく。この場合はスペースキー を押さなくてもローマ字の最後の「u」を押した時点で変換候補に換わる。

さらに スペースキーを押すと「▼離す_」や「▼放す_」が候補として表示 される。送り仮名のある漢字の場合は漢字読みの最初と送り仮名の最初の仮 名に相当するローマ字の最初の文字をアルファベットの大文字で入力する。

ローマ字入力の、かな漢字変換SKKは、仮名を漢字にしたいところでシフト キーを使う。普通にローマ字入力すると仮名文字が入力される。他のかな漢 字変換のように、未確定な仮名文字にはならない。そのため、漢字変換は平 仮名を入力する時点で即時に変換操作しなければならない。未確定な仮名文 字列を入力したあとで一括にかな漢字変換することはできない。

SKKを使って、かな漢字混り文を書く(打つ)際は、漢字を書こうとする度に シフトキーを使う。英文が行頭の文字を大文字にするだけとは違い、SKKに よる日本語入力は、一文の中で何度もシフトキーを使う。SKKは、シフトキ ーを酷使するのである。

SandSを使うようになる前は、左右のシフトキーを使い分ける練習をしてい るうちに慣らされてしまった。モタつきは次第に少なくなるけれど厄介とい う思いは消えない。

windows7のパソコンに買い替えてからは、SandS機能をDvorakJで実現してい た。快調に使っていたのだが、パスワード管理ソフトKeePass-1.26でIDやパ スワードの自動入力をしようとしてコケた。IDやパスワードのアルファベット 大文字が正しく自動入力できない。一部あるいは全部の大文字が小文字で入 力されてしまう。

DvorakJが原因とは夢にも思ってないので悩む。KeePassには二つの系統があ る。KeePass-1.x系列とKeePass-2.x系列である。それぞれがメンテナンスさ れており、2.x系(プロフェッショナル版)が1.x系(クラシック版)のバージョ ンアップ版というわけではない。ただ、2.xのほうが先進的であり、古い windowsで動かすには手間がかかる。なお、1.x系が新しいwindowsで動かな いわけではない。

使い慣れたKeePassから他のパスワード管理ソフトに乗り換える気にならな い。もっとも、KeePassで自動入力していたのではなく、うろ覚えなパス ワードをパソコン上で確認するためで滅多に使うことはなかった。それでも 馴染んだKeePassを捨てるのは惜しい。そこで、KeePass-2.24に乗り換えて みることにする。なんと、KeePass-1.26の自動入力における大文字・小文字 問題がアッサリ解消してしまった。

KeePassの1.x系も2.x系もインストールの必要ないポータブル版を使ってい る。これまでの1.x系も消去してない。1.x系を残していると、1.x系におけ る大文字・小文字問題が気にかかる。

あるとき、大文字と小文字が入れ替わるのは、キー入れ換えソフトの DvorakJのせいかもしれないと思う。早速、DvorakJを停止してKeePass-1.26 の自動入力を試してみる。症状が現われない。ようやくKeePass-1.26と DvorakJの相性問題だったと気付く。

そうなると次に進むべき道は、DvorakJに換わってSandSを実現してくれる ツール探しになった。ネット検索でAutoHotkeyの次の記事を見つける。

カーソルキー、テンキー、SandSを組み込んでみました。
AHk.zip
AHkをインストールして設定ファイルを入れ替えて下さい。インストールが 嫌な人はexeファイルも入れてあるので、それを実行したら設定してある機 能が使えます。
設定用のテキストファイルもこちらに置いておきます。 (引用終わり)

ここからダウンロードできるAHk.zipを使って、いとも簡単にSandSが実現で きた。しかも、KeePass-1.26の自動入力において大文字・小文字問題が起き ない。ダウンロードしたスクリプトでは、コロンがBackspaceに割り当てて あり、コロン自体は「無変換+s」で入力するようになっている。これは困 る。スクリプトを修整するためにネット上にあるAutoHotkeyの記事を読み込 む。

同時にDvorakJの記事も読み直す。ここでモヤモヤがはっきりする。実は、 DvorakJの記事にはAutoHotkeyの名前がよく出てくる。AutoHotkeyにはスク リプトをコンパイルして実行ファイルにするコンパイラが付属している。 DvorakJは、AutoHotkeyのスクリプトで書かれたものをコンパイルしたもの であった。これまでは、DvorakJとAutoHotkeyは別物くらいの認識であっ た。

今までは、AutoHotkeyのプログラム言語で書かれたDvorakJのスクリプトを コンパイルした実行ファイル版のDvorakJを使っていたのである。DvorakJの ホームページに、AutoHotkeyで書かれたDvorakJのソースファイル(スクリプ ト版)がある。AutoHotkeyを知るためにスクリプト版のDvorakJを動かしてみ ようと考える。

上記「わっしゅばーん」さんのサイトからダウンロードできるAHk.zipには AutoHotkeyの実行ファイルであるAHk.exeとそれに読み込ませるAutoHotkey のスクリプトファイルAutoHotkey.ahkの二つが含まれるだけである。zip ファイルを解凍してAHk.exeをダブルクリックすれば動く簡単軽量がよい。

AutoHotkeyを本格的に使うために最新版をダウンロードする。インストーラ 版とポータブル(単体バイナリ)版がある。ポータブル版でSandSは使えてい る。派生版サイトのANSI x86版を使って、SandSのスクリプトが動くことを 確認する。

ここからダウンロードできるのはAutoHotokey_L_Install.exeのみになって いる。これは次の派生版サイトで配布されているインストーラ版と同じもの らしい。インストーラ版をバラした単体版も配布しているのが派生版サイト のようだ。

Installer - includes binaries, English documentation and script compiler.
AutoHotkey_L_Install.exe
Bainaries (Portable zip downloads):
  1. Unicode x86 - recommended for new scripts. - AutoHotkey_Lw.zip
  2. Unicode x64 - for increased performance on 64bit systems. - AutoHotkey_Lw64.zip
  3. ANSI x86 - better compatibility with some older scripts. - AutoHotkey_La.zip
  4. Compiler - updated version of Ahk2Exe, required to compile scripts. - Ahk2Exe_L.zip
  5. Documentation - compiled help files for offline use: English: - AutoHotkey_L_Help.zip

こちらの(1)~(3)はAutoHotkey.exeが一つ含まれるのみである。(4)のコン パイラは三種のAutoHotkey.exeに対応するファイルと一緒になっている。

いよいよ、DvorakJのAutoHotkeyスクリプト版を動かしてみる。DvorakJのサ イトによれば、DvorakJ.ahkはAutoHotkeyのunicode x86(32ビット)で動くと ある。スクリプト版を動かす手順は、先ず、AutoHotkeyのインストール版を 入れる。そして解凍したソースファイルにあるDvorakJ.ahkを実行するとあ る。

DvorakJ の実体は AutoHotkey_L の unicode 版 (32 bit 用) のスリプト です。 (引用終わり)

まだ、AutoHotkeyの試用の段階なのでインストール版は入れたくない。そこ でポータブル版のunicode x86(32ビット)を使ってみることにする。インス トール版ならDvorakJ.ahkをダブルクリックするだけでDvorakJが立ち上が る。exeファイルが一個だけのポータブル版を使うと、それほど簡単ではな く、かなり手間どった。勘違いから、なかなか抜けられない。

AutoHotkey.exeは、それがあるディレクトリのAutoHotkey.ahkを読み込んで 実行する。AutoHotkey.ahkと違うファイル名のスクリプトの場合は AutoHotkey.exeの引き数に指定する。DvorakJのソースファイルを解凍す る。解凍して出来たディレクトリdj_src_2013-11-24にDvorakJ.ahkがある。 このディレクトリにダウンロードしたAutoHotkey.exeを入れる。 AutoHotkey.exe及びDvorakJ.ahkがあるディレクトリをカレントディレクト リにしたコマンドラインから次を打つ。

C:\Users\xxxx\Downloads\dvorakj\dj_src_2013-11-24> AutoHotkey.exe DvorakJ.ahk

そうすると次のダイアログが表示される。

--------------------------------------------------------------------
このファイルを開けません:
ファイル: DvorakJ_manager.ahk
このファイルを開くには、そのためのプログラムが必要です。インターネッ
トで自動的にプログラムを検索するか、またはコンピューターにインストー
ルされたプログラムの一覧から手動で選択してください。
動作を選択してください。
(v)Webサービスを使用して正しいプログラムを探す(W)
( )インストールされたプログラムの一覧からプログラムを選択する(S)
[OK] [キャンセル]
--------------------------------------------------------------------

私は、このメッセージを正しく理解してなかった。「このファイルを開けま せん」を、DvorakJ_manager.ahkという名前のファイルが見つからないと誤 解した。このメッセージが出たら何かの対策を取らないと、これから先に進 めないと思い込んでしまう。何もしないでダイアログをキャンセルした。ダ イアログのいう通りに進めばよかったのである。

(注)コマンドラインから実行したプログラムに対するメッセージは、コマン ドラインに表示されるとの思い込みがあった。windowsのダイアログが出た ので、こんがらかる。windowsには、ファイラーのエクスプローラー、ブラ ウザのinternet explorer、簡易なエディターのメモ帳など、windowsと一緒 にインストールされる小道具や大道具の色々な付属ソフトがある。コマンド プロンプトは、windowsで動く付属ソフトウェアの一つである?(ようだ)。 (注終わり)

DvorakJ.ahkを見ると、確かにその中からDvorakJ_manager.ahkを呼び出して 実行する(runコマンド)ようになっている。呼び出すファイルのファイルパ スが正しく解釈されてないと見当違いをする。ディレクトリ区切りがスラッ シュではダメなのかと悪足掻きする。AutoHotkey.exeがDvorakJ.ahkを読み こんだら、スクリプト内のディレクトリ区切り記号の処理はAutoHotkey.exe の仕事になる。コマンドプロンプトでのディレクトリ区切り記号でなくても 問題ない。

にっちもさっちもいかなくなったので、DvorakJのサイトにある説明のとお りに、インストール版のAutoHotkeyを入れる。あっさりとスクリプト版から 見慣れたDvorakJの設定画面が立ち上がる。

ところで、インストール版のAutoHotkeyのインストーラは一つしかない。 unicode x86, unicode x64, ansi x86の区別はない。デフォルトのインス トールではunicode x64になる。カスタムインストールを選べばunicode x86, ansi x86を指定できる。さらにどのタイプをインストールしたとして も、コントロールパネルの「プログラムのアンインストール」のAutoHotkey の「アンインストールと変更」から他のタイプに変更できる。完全にアンイ ンストールしてから他のタイプをインストールしなおす必要はない。

DvorakJのスクリプト版を動かすためにunicode x86(32ビット)版を選ぶ。な お、32ビット版を選んでもC:\Program Files\AutoHotkeyにインストールさ れている。インストール自体は一瞬で終わる。ファイルとプログラムの関連 付け(レジストリへの書き込み)をするくらいだけのように見える。

インストーラ版のAutoHotkeyでDvorakJのスクリプト版を実行できることが 確認できた。インストール版をアンインストールする。(スクリプト)ファイ ルとプログラム(AutoHotkey)の関連付けを解除するためである。

再び、dj_src_2013-11-24に放り込んだunicode x86版のAutoHotkey.exeを 使ってDvorakJ.ahkをコマンドラインから実行する。やはり「このファイル を開けません:ファイル: DvorakJ_manager.ahk」のメッセージが出る。ここ でメッセージをじっくり読み直す。「ファイルを開けません」の後に「プロ グラムが必要です」とある。さらに「プログラムを探す、選択する」とあ る。

DvorakJ.ahkから呼び出すべきDvorakJ_manager.ahkが見つからないのではな い。DvorakJ_manager.ahkを実行するプログラムが無い、あるいは必要なプ ログラムがあったとしてもwindowsが認識(関連付け)できない。だからプロ グラムを指定してくれといっているのだと気付く。

そこでdj_src_2013-11-24ディレクトリに入れたAutoHotkey.exeを指定して みる。あっさりDvorakJの設定画面が立ち上がる。「このファイルが開けま せん」ダイアログのメッセージをしっかり読まなかったことへの天罰であっ た。

(注)「ファイルを開くプログラムの選択」ダイアログには、「この種類の ファイルを開くときは、選択したプログラムをいつも使う(A)」のラジオボ タンにチェックが入っている。プログラムを選ぶ前に、このチェックを外し ておく。入れたままにすると、選んだプログラムが、実行するファイルのタ イプ(拡張子)に関連付けられる。ファイルの関連付けは簡単だが、その解除 はレジストリ操作になる。インストール版は、それをアンインストールする ことで関連付けが解除できる。exeだけを入れて関連付けしたらレジストリ 操作で関連付けを解除しなければならない。(注終わり)

失敗(メッセージ無視)したばかりにインストール版を入れるハメになった。 その代り、インストール版と単体バイナリ版の違いを知ることができた。 ファイルの関連付けが問題かもしれないと気付く切っ掛けにもなる。遠回り したぶん知識は増える。やさしいインストール版よりポータブル版を最初に 試したお陰と思う。

DvorakJ.ahkの内部からDvorakJ_manager.ahkを実行するRUNコマンドとは、 「外部プログラムを実行する」ものとある。DvorakJ.ahkスクリプトの中 に、DvorakJ_manager.ahkを実行すべきプログラムの指定は書かれてない。 だから「.ahk」ファイルを実行するたびにプログラムを聞いてくる。 「.ahk」ファイルがAutoHotkey.exeに関連付けされてないからである。

もし、コマンドラインによらないで、スクリプトファイルDvorakJ.ahkの右 クリックメニューから「開く」を選ぶと、先ず、DvorakJ.ahkを開くプログ ラムを聞いてくる。さらに、DvorakJ_manager.ahkを開くプログラムを聞い てくる。つごう二度dj_src_2013-11-24ディレクトリに入れた AutoHotkey.exeを指定する必要がある。

|

« AutoHotkeyを使いはじめる(Thu Dec 05, 2013) | トップページ | vi/vim の f (find) と t (till) コマンド (Mon Mar 31, 2014) »

「パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/520565/58759059

この記事へのトラックバック一覧です: DvorakJのAutoHotkeyスクリプト版を動かす(Sun Dec 08, 2013):

« AutoHotkeyを使いはじめる(Thu Dec 05, 2013) | トップページ | vi/vim の f (find) と t (till) コマンド (Mon Mar 31, 2014) »