それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

EmEditorでマクロのライブラリ

マクロのコピペにイライラする。


時間がないのに。コピペ部分の編集が手間。


マクロをImport出来ると便利なんだよね。


よし、じゃ、やろう。


方法A 

EmEditor Fan 紹介されてた。WSHでやる方法。


EmEditorのマクロをWindows Script Component(.wsc)としてライブラリ化する

いろいろなEmEditorマクロを書いていると、繰り返し同じようなプログラムを記述することもあり、ライブラリとしたい場合もあるかと思います。ここではWindows Script Componentという機構を用いて、マクロの一部を再利用可能なライブラリ(COMコンポーネント)とする方法を紹介します。


中の人には悪いけど、COM作成が面倒だし、今後の環境移行がめんどくさそう。


んー・・・1分で考えた。代替方法。


「eval()」で良いんじゃね?


さっそくやってみた。

/**
* EmEditor マクロに組み込んでつかう。
* PHPのrequire、Perlのuseの代わり。
* 作成済みJavaScript オブジェクトをimportする
* @author takuya_1st
* @version 1.0
* @modified 2006/10/01
*/
function read( name, path ){
  try{
    path = (path!=null) ? path : document.Path;
    var fs = new ActiveXObject("Scripting.FileSystemObject");
    var a  = fs.OpenTextFile( path +"\\" + name,
                              1 ,
                              fs.TristateUseDefault );
    return a.ReadAll();
  }catch(e){
    //
  }
  return;
}
function load(x,y){
  eval(read(x,y));
  return;
}

////利用サンプル
src = read("MyLibs.js");
load("document.js");


これでおっけ。


load 関数がコピペになるけど。そこはマクロの限界かな?