hmPython3 (秀丸マクロ用 スクリプト via Python)

  • 概要

    秀丸マクロで「Pythonを秀丸マクロとしてシームレスに近い形で利用する」ためのライブラリとなります。

    秀丸のインプロセスで動作するため、秀丸の「組み込み言語」として動作します。

    このため、hmPython3では、Pythonと秀丸マクロとの「値のやりとり」や、
    「Pythonの中で秀丸マクロを実行」や「秀丸マクロの中でPythonを実行」をすることが、 とても簡単になっています。

    • Python

      Pythonは「データ分析」「機械学習・AI学習」「コンピュータグラフィック」
      「分析や収集系のWeb API」 「システムの稼働テストプログラム」など、
      Webに偏らないスクリプト言語であり、見通しが良いスクリプト記述となる傾向があるため、
      「多目的な汎用スクリプト」としては、世界で他のスクリプト言語の追随を許さないほどの利用シェアを誇っています。

    • hmPython3は最もスタンダードなPythonを秀丸用言語として組み込む

      hmPython3は、www.python.orgで配布している最もスタンダードなpythonを秀丸に組み入れます。

    • Sublime Text用途に作られたマクロを極めて短時間で移植できる

      豊富なプラグイン数を誇る「Sublime Textエディタ」は、マクロとしてPythonが利用されています。
      Sublime Textに欲しいマクロが存在するなら、hmPython3を利用することで、
      短時間で、秀丸用途に移植できる可能性が相当高まることでしょう。

  • ダウンロード(秀丸エディタ 通常版用)

    hmPython3Setup_x86.msiファイル。ver 1.561
    └更新日 2017/10/21
  • ダウンロード(秀丸エディタ 64bit版用)(OSではなく秀丸のビット数です)

    hmPython3Setup_x64.msiファイル。ver 1.561
    └更新日 2017/10/21
  • 動作環境

    • 秀丸

      秀丸エディタ ver8.66以上

    • 備考

      あなたのPCにすでにPythonがインストールされていたとしても、
      そのPythonとは一切干渉しません。
      又、既存のPython環境の妨げになるようなこともありません。

  • インストール

    • hmPython3Setup_x86.msi(or x64.msi)をダウンロードする。
    • hmPython3Setup_x86.msiを実行。
      インストール先は、「必ず秀丸があるフォルダ(hidemaru.exeがあるフォルダ)と同じフォルダにする必要があります。
      サブフォルダや別フォルダでは動作しません。
    • インストールすると、 秀丸直下に「hmPython3.dll」「hmPython.py」「python36.dll」がコピーされます。
      又、「HmPython3というサブフォルダ」が出来上がり、
      その中にpythonインタプリタが「フルライブラリ」込みでまるまる配置
      されます。
  • ソース例

    • (DoString関数の中身の記述は)Pythonで動作するソースは原則的には動作します。
    • Python内から秀丸マクロが実行可能です。
    • Pythonと秀丸マクロとの変数のやり取りも、Pythonで記述します。
    • .mac1つのファイルに埋め込んだ場合

      HTMLにJavaScriptを埋め込むような感覚で、秀丸マクロにPythonを文字列として埋め込むことが出来ます。
      複数個所に埋め込んでも、記述の内容は持続性を持っています。
      又、HTMLに対するJavaScript同様に、中に埋め込むのではなく、別ファイルとして記述してもかまいません。

      mytest.mac
      #DLL = loaddll( hidemarudir + @"\hmPython3" );
      
      #r = dllfuncw(#DLL, "DoString", R"PY(
      from hmPython import hm
       
      import random
      r = random.random()
      
      ret = [ x*2 for x in range(1, 10) ]
      hm.debuginfo( ret )
      
      # 秀丸マクロ変数の「date」という定義済みの値を使う
      hm.debuginfo( hm.Macro.Var["date"] )
      
      hm.Macro.Var["$mes"] = "秀丸のマクロの変数「$mes」へと値を代入";
      
      # Python側から秀丸マクロを実行する
      hm.Macro.Eval(r'''
          message $mes;
      ''')
      
      )PY"
      );
      
      freedll(#DLL);
      
    • .macと.pyの2つのファイルに分けた場合

      特に支障がなければ、マクロとは別ファイルに記述するのを推奨します。
      エラーの行やファイルの位置がわかりやすくなります。

      mytest.mac
      #DLL = loaddll( hidemarudir + @"\hmPython3" );
      #r = dllfuncw(#DLL, "DoString", "import mytest");
      freedll(#DLL);
      
      mytest.py
      from hmPython import hm
       
      import random
      r = random.random()
      
      ret = [ x*2 for x in range(1, 10) ]
      hm.debuginfo( ret )
      
      # 秀丸マクロ変数の「date」という定義済みの値を使う
      hm.debuginfo( hm.Macro.Var["date"] )
      
      hm.Macro.Var["$mes"] = "秀丸のマクロの変数「$mes」へと値を代入";
      
      # Python側から秀丸マクロを実行する
      hm.Macro.Eval(r'''
          message $mes;
      ''')
      
  • 特徴

    • インプロセスで動作する!!

      これまで秀丸マクロライブラリなどに、よくあがっていたPythonが実行可能と称していたマクロは、
      「別途インタプリタが別プロセスとして実行され、その実行結果を表示します」
      といったものが大半でした。
      (例えば、別途Pythonインタプリタが入っていれば、それを別プロセスとして呼び出し、解釈し、結果をアウトプット枠に表示します、など)

      しかし、このhmPython3は違います!!
      「秀丸マクロと同じプロセス空間」で動作し、秀丸のマクロ変数とも自由にやり取り出来ますので、ガッチリ秀丸と完全連携しています。

  • 秀丸エディタ ストアアプリ版について

    hmPython3はストアアプリ版には本来対応していませんが、
    特別に設定をすれば、利用する方法を確保しています。
    詳細は左メニューのストアアプリ版での利用などを参照してください。

  • hmPython3とは別にhmPyもある

    このhmPythonとは別に、「.NET」が利用可能な「IronPython」で記述する「hmPy」もあります、
    既存資産やライブラリに関する知識、制作目的に応じて、選択してください。
    又、hmPython3とhmPyを1つのマクロで同時に利用することも可能です。

  • ライセンス

    • hmPython3

      全て Apache License 2.0となります。

      ソースの場所

      • Githubにソースがあります。
        コンパイルの詳細は左メニューより「他のバージョンのPythonを使えるようにする」を参照してください。

        (※ Githubでリポジトリの「サブディレクトリ」だけをダウンロードする簡単な方法は、こちら)

    • Python一式

      原則的には Python Software Foundation ライセンスとなります。
      詳細は、インストールした際に含まれる「LICENSE.txt」を確認してください。