2014年4月21日月曜日

サクラエディタで Aspell のマクロを作ってみる(不完全版)

サクラエディタを最近試してみており、そのなかからスペルチェックの Aspell を呼び出そうと考えている。
ただ、TeX Wiki の情報
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?%E3%82%B5%E3%82%AF%E3%83%A9%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%2F%E3%83%9E%E3%82%AF%E3%83%AD

からたどれる情報は更新されていないようで、現在のサクラエディタだとうまく利用できなかった。

少しマクロなどを修正して、現状としては以下のようにしている。
--- aspell.js ----

(function () {
    var c = Editor.ExpandParameter("$e");
    var b = Editor.GetFilename();
    var cd = "cd /d " + ["\"", c, "\""].join("");
    var aspellcmd = "\"c:\\Program\ Files\ \(x86\)\\Aspell\\bin\\aspell.exe\" --lang=en -c -t" + " " + ["\"", b, "\""].join("");
    var cmd = "cmd /c " + cd + " && chcp 65001 && " + aspellcmd;
    Editor.FileSave();
    var objShell = new ActiveXObject("WScript.Shell");
    objShell.Run(cmd,1,1);
    Editor.FileClose();
    var movecmd = "cmd /c " + cd + " && " + "move " + b + ".new " + b;
    objShell.Run(movecmd,1,1);  
}.call(this));

--- ここまで ---

これを設定フォルダ(サクラエディタの「設定」->「共通設定」として出てくるダイアログの左下にある「設定フォルダ」を押すと表示されるフォルダ)において、「共通設定」の「マクロ」タブで登録すると利用できるようにはなる。

ただ、まだ機能面で不足があって、
(1) a.txt を Aspell にかけると a.txt.new というファイルに結果が保存されて、a.txt.new を a.txt に移動している。このあとで、 Editor.FileReopen() をかけると空の状態でエディタに表示されてしまう(ファイルが「無題.txt」になる)。「X」ボタンでファイルを一度閉じた後に、もう一度開けると、Aspell のかかった結果を表示できる。
(2) ファイルが UTF-8 の場合、コマンドプロンプトのコードを chcp 65001 で UTF-8 に変換しているが、フォントが合わないため日本語部分が誤って表示される。Aspell 自身は日本語部分を飛ばして処理するようで処理自体は問題ないのだが、フォントを変更するにはレジストリを regedit で修正する方法がある。regedit ではなく、コマンドプロンプトからのコマンドで修正できるかどうか、がよく分かっていない。

となっている。



0 件のコメント:

コメントを投稿