2009/03/05

選択中の文字列中の全角文字をすべて半角に変換するマクロ

またしてもjEdit & groovy ネタで。

エディタで選択中の文字列中の全角文字をすべて半角に変換するマクロです。対応表は電脳世代.jpのサイトを参考にしました。

def text = textArea.selectedText
[
    [n:"0",w:"0"], [n:"1",w:"1"], [n:"2",w:"2"], [n:"3",w:"3"], [n:"4",w:"4"], [n:"5",w:"5"], [n:"6",w:"6"], [n:"7",w:"7"], [n:"8",w:"8"], [n:"9",w:"9"], [n:"a",w:"a"], [n:"b",w:"b"], [n:"c",w:"c"], [n:"d",w:"d"], [n:"e",w:"e"], [n:"f",w:"f"], [n:"g",w:"g"], [n:"h",w:"h"], [n:"i",w:"i"], [n:"j",w:"j"], [n:"k",w:"k"], [n:"l",w:"l"], [n:"m",w:"m"], [n:"n",w:"n"], [n:"o",w:"o"], [n:"p",w:"p"], [n:"q",w:"q"], [n:"r",w:"r"], [n:"s",w:"s"], [n:"t",w:"t"], [n:"u",w:"u"], [n:"v",w:"v"], [n:"w",w:"w"], [n:"x",w:"x"], [n:"y",w:"y"], [n:"z",w:"z"], [n:"A",w:"A"], [n:"B",w:"B"], [n:"C",w:"C"], [n:"D",w:"D"], [n:"E",w:"E"], [n:"F",w:"F"], [n:"G",w:"G"], [n:"H",w:"H"], [n:"I",w:"I"], [n:"J",w:"J"], [n:"K",w:"K"], [n:"L",w:"L"], [n:"M",w:"M"], [n:"N",w:"N"], [n:"O",w:"O"], [n:"P",w:"P"], [n:"Q",w:"Q"], [n:"R",w:"R"], [n:"S",w:"S"], [n:"T",w:"T"], [n:"U",w:"U"], [n:"V",w:"V"], [n:"W",w:"W"], [n:"X",w:"X"], [n:"Y",w:"Y"], [n:"Z",w:"Z"], [n:"ア",w:"ア"], [n:"イ",w:"イ"], [n:"ウ",w:"ウ"], [n:"エ",w:"エ"], [n:"オ",w:"オ"], [n:"カ",w:"カ"], [n:"キ",w:"キ"], [n:"ク",w:"ク"], [n:"ケ",w:"ケ"], [n:"コ",w:"コ"], [n:"サ",w:"サ"], [n:"シ",w:"シ"], [n:"ス",w:"ス"], [n:"セ",w:"セ"], [n:"ソ",w:"ソ"], [n:"タ",w:"タ"], [n:"チ",w:"チ"], [n:"ツ",w:"ツ"], [n:"テ",w:"テ"], [n:"ト",w:"ト"], [n:"ナ",w:"ナ"], [n:"ニ",w:"ニ"], [n:"ヌ",w:"ヌ"], [n:"ネ",w:"ネ"], [n:"ノ",w:"ノ"], [n:"ハ",w:"ハ"], [n:"ヒ",w:"ヒ"], [n:"フ",w:"フ"], [n:"ヘ",w:"ヘ"], [n:"ホ",w:"ホ"], [n:"マ",w:"マ"], [n:"ミ",w:"ミ"], [n:"ム",w:"ム"], [n:"メ",w:"メ"], [n:"モ",w:"モ"], [n:"ヤ",w:"ヤ"], [n:"ユ",w:"ユ"], [n:"ヨ",w:"ヨ"], [n:"ラ",w:"ラ"], [n:"リ",w:"リ"], [n:"ル",w:"ル"], [n:"レ",w:"レ"], [n:"ロ",w:"ロ"], [n:"ワ",w:"ワ"], [n:"ヲ",w:"ヲ"], [n:"ン",w:"ン"], [n:"ァ",w:"ァ"], [n:"ィ",w:"ィ"], [n:"ゥ",w:"ゥ"], [n:"ェ",w:"ェ"], [n:"ォ",w:"ォ"], [n:"ッ",w:"ッ"], [n:"ャ",w:"ャ"], [n:"ュ",w:"ュ"], [n:"ョ",w:"ョ"], [n:"ー",w:"ー"], [n:"。",w:"。"], [n:"、",w:"、"], [n:"・",w:"・"], [n:"「",w:"「"], [n:"」",w:"」"], [n:"゙",w:"゛"], [n:"゚",w:"゜"], [n:"ヴ",w:"ヴ"], [n:"ガ",w:"ガ"], [n:"ギ",w:"ギ"], [n:"グ",w:"グ"], [n:"ゲ",w:"ゲ"], [n:"ゴ",w:"ゴ"], [n:"ザ",w:"ザ"], [n:"ジ",w:"ジ"], [n:"ズ",w:"ズ"], [n:"ゼ",w:"ゼ"], [n:"ゾ",w:"ゾ"], [n:"ダ",w:"ダ"], [n:"ヂ",w:"ヂ"], [n:"ヅ",w:"ヅ"], [n:"デ",w:"デ"], [n:"ド",w:"ド"], [n:"バ",w:"バ"], [n:"ビ",w:"ビ"], [n:"ブ",w:"ブ"], [n:"ベ",w:"ベ"], [n:"ボ",w:"ボ"], [n:"パ",w:"パ"], [n:"ピ",w:"ピ"], [n:"プ",w:"プ"], [n:"ペ",w:"ペ"], [n:"ポ",w:"ポ"],
].each{
    text = text.replace(it.w, it.n)
}
textArea.selectedText = text

いつものようにこれを $HOME/.jedit/macros に配置してメニューからマクロを実行します。

text.replace(it.w, it.n) -> text.replace(it.n, it.w)

とすれば、半角から全角への変換もできます。

2 件のコメント:

  1. どうも、ふもです。ちょっとだけ質問。
    jEditって使いやすいですか?
    groovyがマクロで使えるのは魅力的だと思うんですが、ちょっと私も入れて試してみたところメインエディタとしては力不足な気がしてならんのです…。
    (最近エディタを色々模索中なもので質問させていただきました)

    返信削除
  2. >fumokmmさん
    こんにちわ。
    僕は結構気に入ってきました。
    プラグインを入れることでかなりのことができますし、
    ショートカットも既存のものを含めて自由に変更できるので、
    サクラエディタに近いショートカットキーの割り当てをして使用しています。

    インストール直後の状態からプラグインを10こぐらいいれてますね。

    返信削除