全角英数を半角に変換するjEditマクロ

日本人でもjEditを便利に使おう、というわけで、選択範囲の全角英数を半角に変換するjEditマクロを書いてみた。

ホームディレクトリ/.jedit/macros に、
ConvertWideCharToASCII.bshというファイルを置き、以下のコードを貼り付ける。

void convertWideCharToASCII() {
    text = textArea.getSelectedText();
    sb = new StringBuffer();
    for(i = 0; i < text.length(); i++) {
        c = text.charAt(i);
        if(c >= 0xff01 && c <= 0xff5d) {
            c = c - 0xff01 + 0x0021;
        }
        else if(c == 0x3000) {
            c = ' ';
        }
        sb.append((char)c);
    }
    textArea.setSelectedText(sb.toString());
}

if(buffer.isReadOnly())
	Macros.error(view, "Buffer is read-only.");
else
	convertWideCharToASCII();

これだけ、超簡単です。目的に合うプラグインやマクロを探すより、欲しい文字列操作をそのつど書くほうが楽かもしれない。Lispで同じことやれと言われても、ちょっと二の足踏むよね。

なぜテキストエディタ上で動くツールを書くか?:ファイル単位で変換するツールを作ると、ファイル内の全テキストが変換されてしまうし、何より、操作のたびに保存が発生するのは面倒だ。保存してないバッファで編集できるのがいい。

jEditにJRubyを組み込めたら、もっと楽で、日本でもウケるのかな。