コマンド入力マクロ(WSH)−「真魚」エディタ用
※TeX、LaTeXのコマンド用のマクロ。(\を区切り文字とする。)
(クリックするとテキストファイルがそのまま表示されてしまうので、スクリプトそのものをダウンロードするには画像か圧縮ファイルの方をクリックする。)
テキストエディタ「真魚」にはWSH(Windows Script Host)の内部コマンドがある。それを利用して、テキストファイル(texvoc.txt)から適宜コマンドを検索・入力する補助スクリプトである。
【使い方】
「真魚」(Mana2)をインストールしたフォルダに、この「inputcmd_1.vbs」と「texvoc.txt」を置く。エディタの「特殊−スクリプト実行−スクリプトファイル実行」メニューをたどり、「inputcmd_1.vbs」を実行すると「検索する文字」を尋ねてくるので、半角英字で(1文字でも数文字でも)入力する。そうすると候補を拾ってメッセージを出すので、該当するコマンドについている番号を覚えておき、次にInputDialogで番号を求められるのでその番号を入力すると、入力中のカーソル位置に該当のコマンドを転記する。
【改版履歴】
◇WSHを使ってファイルに文字を書き込む場合、おそらく行単位でしか書き込めないのではないかと思われる。VBScriptのレファレンス類にも文字単位で「カーソル位置」(キャレット位置)に書き込む方法は載っていなかった。WSHについて調べていくなかでテキストエディタ「真魚」(Ver.2.xxのもの)(紹介文−http://www.vector.co.jp/vpack/browse/pickup/pw6/pw006625.html)が独自のWSHによるメソッドやプロパティを内部的に持っていること(特にGetSelText, SetSelText)やUnicode文字の表示ができることなどに気づいたので何とかそれを使ってみたいと思い、例の試行錯誤でスクリプトレットを作ってみた。
※「真魚」のヘルプに書いてあるように、このエディタには優秀な入力補完機能があり、入力する便宜を追求するのならその方法で十分なはずだ。taiju氏が蛇足のスクリプトを作ったのは、TeX等のコマンド入力フォームをVBAで作ったときに、CTRL+Vの1ステップを自動化することがどうしてもできず、エディタの側からデータを受け取れたらと考えたときの着想が未整理のままで残ってしまった欲求不満解消の試みなのである。それにしても、このtaiju製スクリプトの方は、検索表示ができるところは「コマンド入力フォーム」の利便性と通じるものの、コマンドファイルの用意をしなければならず、シンプル&エレガンスからは程遠いステップをゴールまで辿っていくというスタイルで、「まあ使える」「とにかく動いた」というレベルの代物にはちがいない。それでもとにかく、WSHでは通常できないように思われる文字単位の転記入力を果たしたのでひとまず満足である。(2007.8.15/8.16訂正。)
◇sStrの配列データを最後に消去する方がよいかと考え、そのようにした。日本語で検索したり、"\"以外の区切り記号(改行やTAB等)でも同様の操作ができるスクリプトもできそうなので、そのうち工夫してみたい。(8.16)◇日本語で語彙を検索し、改行コードを基準に切り分け選択できるスクリプトは、同じ枠組みで実現できた(imputcmd_1.vbsと数カ所しか違わない)。スクリプトの中のファイル名の指定個所を変更すれば、いろいろな用途に応用できると思う。また、番号選択画面で「0」(ゼロ)を入力すると検索結果をすべて出力するようにした。※なお、Ver.1は「\」をデータ区切りにしているのでTeX、LaTeXのコマンド用スクリプトと考えてよい。Ver.2はアルファベット・かな文字・漢字で汎用的に使える。改行文字を区切り文字にしているので、応用範囲が広い。(8.19)