2012年09月16日

EmEditor・URLデコードマクロ

 最近、EmEditorのマクロを組んでいたが、今更知った事。
 EmEditorは用意されているマクロ命令だけではなく、Javascriptのコマンドがほぼそのまま使える。そのため、今までマクロでできないと思っていた事が、Javascriptを使えば実に簡単にできる事も分かった。
 と言う事で、それを使った小技的なものを、自分の覚え書きの意味も含めて書いてみようと思う。

 また、今まで書いたものも含めて、EmEditorのまとめも作っておいた。

EmEditorまとめ

 これから記事を追加したら、こちらも更新予定。



EmEditorでURLエンコード文字をデコードする

 Googleなどで検索すると、URLが
https://www.google.co.jp/search?q=%E6%A4%9C%E7%B4%A2&sugexp=chrome,mod=10&sourceid=chrome&ie=UTF-8
 という感じになるが、これを
https://www.google.co.jp/search?q=検索&sugexp=chrome,mod=10&sourceid=chrome&ie=UTF-8
 と、コードになっている検索ワードをデコードしてくれるマクロ。
 私にとって、アクセス解析などで結構これを使う機会が多いので。

 コードになっている部分だけを範囲指定して、次のマクロを実行する。
// URLエンコード文字をデコード
document.selection.Text = decodeURI(document.selection.Text);
 これだけ。つまりJavascriptの「decodeURI」命令を使うだけで済む。
 ただし、これはコードの種類がUTF-8のみ、Shift JISなど別のコードが入っていたり、コード自体に間違いがあるとエラーが出て止まる。また、Shift JISを変換するには別にライブラリなどが必要。
 この辺、エラーは無視してくれたら複数のURLを一度に変換できるけど、いい方法は無いか検討中。

 この応用として、文書内にある検索URLを一括で日本語にしてくれるマクロ。
// URL一括デコードマクロ
document.selection.Replace("^.*q=","" , eeReplaceAll |
eeFindReplaceRegExp); // 検索ワードの前を削除
document.selection.Replace("&.*$","" , eeReplaceAll |
eeFindReplaceRegExp); // 検索ワードの後を削除
document.selection.SelectAll(); // 全て選択
document.selection.Text =
decodeURI(document.selection.Text); // URLデコード
document.HighlightFind=false; // 検索解除
 文字列置換を利用して作ってみた。

 次の文書でマクロを実行すると、
https://www.google.co.jp/search?q=%E6%A4%9C%E7%B4%A2&sugexp=chrome,mod=10&sourceid=chrome&ie=UTF-8
https://www.google.co.jp/search?q=%E3%83%96%E3%83%AD%E3%82%B0&sugexp=chrome,mod=10&sourceid=chrome&ie=UTF-8
    ↓
検索
ブログ
 と、検索ワードのみ抽出してくれる。




posted by 司隆 at 13:16 | Comment(0) | Computer
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。