前へ
次へ
秀丸マクロ用 .NET 系 プログラミング言語 対比表
hm.NET, hmPy, hmV8, hmJS, hmPS 対比表
似たようなものが複数存在するため、対比表が必要かと思います。
ここでは「言語記述性能」「将来性」「.NETとの相性」「可搬性」「読み込み速度」で、
対比しています。
hm.NET/C#
トピック
評価点
インデックス
捕捉
言語
10
Windowsでは圧倒的、iOSやAndroidにおいてもそれなりの実装シェアを持つ、
新進気鋭でありながら国際規格にもなっている
C#によって実装することを主眼に置いています。
この言語と、それを取り巻く環境が、
非常に高い開発効率と生産性を持っていることは、
いうに及ばないでしょう。
将来性
9
C#が消える時は、Visual Studio系が消える時であり、
Windowsも消える時である、
と断言しても良いと思います。
ECMAScriptの将来性には一歩及ばないでしょうが、
現在のC#の、Microsoftのプッシュ具合と
デスクトップ・クロスプラットフォーム・クラウド・サーバー
での使用状況を考慮すると、
充分に高い将来性が確保されていると言えるでしょう。
.NET相性
10
.NETは「まずはC#で使いやすいのか」というように
C#で利用しやすいということを念頭に設計されています。
可搬性
10
hm.NET1つが、
「実行時のライブラリであり」
「実装時の参照兼入力補完ライブラリでもある」
といった構成になっています。
読み込み速度
10
他のhm**シリーズが、
スクリプト言語スコープを別途作成するのに対して、
これはそのようなものは作成しないため、
非常に速い読み込み速度となっています。
hmV8/ECMAScript6
トピック
評価点
インデックス
捕捉
言語
7
ECMAScript2020 (Google V8 Engine) + α
言語そのものは、「強力」とまでは言えませんが、
ECMAScript6(ES2020)に至り、「現代的な言語としてはこの文法があった方がベター」
といった文法は一通り入っいます。
かなりオブジェクト指向系のモダンな他の言語と類似した記述となりなじみやすくなったと言えるでしょう。
組み込み言語としては、「必要な文法や機能は十分すぎるほど揃っている」という状態です。
将来性
10
「Perl, Ruby, Python, PHP」といった現行スクリプト言語にて記述されている多くの分野は、
長い目で見れば、将来はこのECMAScript6(2015~)へと差し替えられていくことは、疑いようもありません。
スクリプトだけではなく、C#、JAVAなどが担っている領域の一部も、
ECMAScript6(以降)で代替されていくことでしょう。
「基本文法とコアライブラリはECMAScript6系」、
各アプリは「拡張APIを提供」、
といった形が主流となっていくことが予想されます。
策定やエンジン実装の中心を担っているのは、Google, Microsoft, Apple, Mozillaですから、
年単位どころか、月単位で、主要プラットフォームの全てで全方位的にこの方向へと進んでいっています。
.NET相性
5
.NETのクラス等は利用できますが、
ECMAScript6のクラスと、.NETライブラリのクラスは別のものなので、
それほど相性が良いわけではありません。
継承「is-a」には出来ないため、.NETのライブラリは静的に利用するか、
もしくは、「has-a」にして組んでいくこととなります。
ちょうど、
hmV8のトップページ
のサンプルがそのような形です。
可搬性
7
hmV8.dll、ClearScript***.dll
といった4つの構成で、
ECMAScript2019の文法全て
ECMAScript2019のライブラリ全て
.NETの多くのライブラリ
が使えるというのは、素晴らしい可搬性です。
4つファイルが必要というのが、「少しファイルが多めかな」といった程度でしょう。
読み込み速度
4
関連ファイルをNGenすることにより、
なんとか及第点の読み込み速度となります。
何もNGenしない場合は、かなり読み込み速度が遅いと言えます。
hmJS/JScript(=ECMAScript3)
トピック
評価点
インデックス
捕捉
言語
3
JScript 5.8 / ECMAScript3 + α
秀丸マクロの文法等に比べれば、かなりマシですが、
現代のスクリプト言語としては、 力不足感は否めません。
(より正確にはJavaScript3系のテクニックを使うと、バッドノウハウ的な記述になりやすい)
但し、組み込み言語として考えると、この程度の文法があれば十分である、という考え方もあります。
将来性
2
このhmJSは将来性を期待して採用するものではなく、
過去のJavaScriptやJScriptの記述を、出来るだけ利用しようといったものです。
.NET相性
4
.NETのクラス等は利用できますが、
ECMAScript3のプロトタイプでは、上手くクラスとしてまとめるのも難しいかと思います。
あまり相性が良いわけではありません。
継承「is-a」には出来ないため、.NETのライブラリは静的に利用することになるかと思います。
ちょうど、
hmJSのトップページ
のサンプルがそのような形です。
可搬性
10
hmJS.dll
というたった1つのファイルだけで
ECMAScript3の文法ほぼ全て
ECMAScript3のライブラリ全て
.NETの多くのライブラリ
が使えるというのは、可搬性としては完璧です。
読み込み速度
9
hmJS.dll単体なので、かなり読み込み速度が速いです。
hmJS.dllをNGenすると、さらに速くなります。
hmPy/IronPython
トピック
評価点
インデックス
捕捉
言語
8
Python2.7 + α
リスト機構を重視しつつ、バランスが取れた言語です。
変数に「記号」も極力付きませんし、「.」で区切りは統一しており、
「new」といった記述も不要であり、 記述に迷いが生じないため、とても優れています。
将来性
5
IronPythonは2021/01/16現在も更新され続けているため、まだ生存しているプロジェクトです。
すでにIronPython 3.x系開発も以前より進んでいるため、やがてリリースされることでしょう。
IronPythonは、.NET Frameworkが利用可能なスクリプト言語としては唯一、
Visual Studioで複数のバージョンに渡って正式といってもよいポジションでサポートされている言語です。
(Visual Studio 2019においても、インストール時にpython関連にチェックを入れるだけでIronPythonもサポートされます)
.NET相性
8
IronPythonは、Dynamic Language Runtimeを利用して作られた言語として
最も時間と人員が割かれた言語であり、DLRを最も活かした言語はIronPython
だと断言して良いでしょう。
既存のスクリプト言語の中で、.NETと非常に高いレベルで融合に成功した言語はPythonのみある。
と断言できるほどです。
hmPyのトップページ
の秀丸8.66以上の場合サンプルで、
その.NET Frameworkとの融合性の高さ、記述の自然さがみて取れます。
IronPythonに匹敵するのは、F#スクリプト、それらを超えるのは、C#スクリプトのみでしょう。
可搬性
4
IronPython本体のインストールが必要となるため、低めの得点となります。
しかし、その甲斐あって
Python2.7系の文法全て
.NETの多くのライブラリ
IronPythonに移植されたPython標準ライブラリの多くのもの
という非常に有利な構成を利用可能となります。
読み込み速度
6
hmPy.dllとIronPython系の本体の各種dllをNGenすることにより、
それなりの読み込み速度が確保できます。
hmPS/PowerShell
トピック
評価点
インデックス
捕捉
言語
7
PowerShell
PowerShellはWindows10では標準のシェルスクリプトであり、
・他のプログラムをいとも簡単に呼び出せるシェルとしての性質
・.NETプログラムであれば、オブジェクトベースのコマンドレットとなる機能、
・旧型のテキストベースのコマンドもシームレスに扱うことが可能。
・クラス機構や継承もあるとともに、名前空間などもあります。
・関数志向型を思わせるようなリスト処理もこなせます。
標準シェルとしては、機能的に十分な言語だと言え、エディタの組み込み言語としても
適性が高いと言えそうです。
将来性
9
Windows Vista あたりから細々と使われてきた印象ですが、
Microsoft Windows10でいよいよ、cmd.exeに替わる標準のシェルスクリプトという立場になったため、
今後は必然的に利用者が増えて、ノウハウも蓄積されていくことでしょう。
.NET相性
8
.NETのクラスなどを利用することが想定された作りとなっています。
また、PowerShellのコマンドレット自体、
.NET FrameworkのC#での制作を念頭に置かれていると考えてよいでしょう。
.NETのクラスを継承することも出来ます。
可搬性
10
hmPS.dll
というたった1つのファイルだけで
PowerShellの文法のほとんど全て(組み込みPowerShellではごく一部制限がある)
.NETの多くのライブラリ
が使えるというのは、可搬性としては完璧です。
読み込み速度
4
デフォルトだと初動が遅い!! 遅すぎる!! といった印象ですが
hmPS.dllやPowerShell系の.dllをNGenすると結構マシな速度となり、
hmV8をNGenするよりも速く起動するようになります。
前へ
次へ
目次
ホーム
.NET・言語
.NET・言語
.NET via C#
.NET via C#
hm.NET
更新履歴
hm.NET イントロダクション
hm.NET イントロダクション
ロードと実行の基本
エラー等の表示
プロセス終了時に実行するメソッドの指定
継続する変数 static 変数
フォームを利用するパターン
フォームを使って「同期」タイマー
マクロの開始・終了と、プログラムの常駐
IntPtr より便利な nint
hm.NET 入門編
hm.NET 入門編
入門編の基本となるクラス
秀丸のバージョン
hm.NET 編集エリア編
hm.NET 編集エリア編
秀丸で編集しているテキスト
秀丸で選択しているテキスト
秀丸でカーソルの行のテキスト
秀丸で編集中ファイルのフルパス
秀丸でカーソルの位置
秀丸にマウスに対応するカーソル位置
秀丸ハンドル
特殊なスリープと解除
更新や具体的操作があるかのチェック
hm.NET マクロ編
hm.NET マクロ編
マクロ実行中か、実行中以外か
秀丸マクロ変数の読み書き
秀丸マクロ変数へのアクセス可能タイミング
秀丸マクロを文字列で実行
秀丸マクロを文字列で実行(応用)
秀丸マクロの関数を実行
秀丸マクロの(関数的な)文を実行
秀丸マクロを改めて実行(文字列編)
秀丸マクロを改めて実行(メソッド編)
秀丸マクロを改めて実行(ファイル指定編)
秀丸マクロの静的な変数の読み書き
Hm.Macro.Flags.***
より優れた監視とTick
hm.NET ファイル編
hm.NET ファイル編
外部ファイルのエンコード自動判定(秀丸文字コード判定)
外部ファイルテキストの読み込み(秀丸文字コード判定)
秀丸マクロ変数はプロセスを跨ぐバッファー
hm.NET アウトプット枠編
hm.NET アウトプット枠編
アウトプット枠への出力
アウトプット枠の内容の一時退避
一時退避した内容の復元
アウトプット枠のクリア
アウトプット枠へのコマンド実行
アウトプット枠の基本ディレクトリ設定
アウトプット枠のハンドル
hm.NET ファイルマネージャ枠編
hm.NET ファイルマネージャ枠編
モードを設定
モードを取得
プロジェクトを読み込む
プロジェクトを保存
プロジェクト名を取得
コマンド実行
ファイルマネージャ枠のハンドルの取得
更新された状態か取得
現在のフォルダのパスを取得
hm.NET タブー編
hm.NET タブー編
C#側から秀丸アクティブウィンドウ生成
DynamicObjectでラップするべからず
hm.NET デバッグ編
hm.NET デバッグ編
Trace.WriteLine や Console.WriteLine
hm.NET 配置編
hm.NET 配置編
中間アセンブリdllの配置フォルダの追加
ネイティブdllの配置パスの追加
C#とC++の値のやりとり
hm.NET WPF編
hm.NET WPF編
WPFアプリ形式もインプロセスで呼び出せる
WPFのWVVMが利用されてものを呼び出す
hm.NET NET5編
hm.NET NET5編
.NET4.8と.NET5の互換ソース
.NET4.xから.NET5以降のdllを呼ぶ
NGenのススメ
~読み込み実行の高速化~
.NET via C# as COM
.NET via C# as COM
.NET4.xのCOMによる手法
.NET4.xのCOMによる手法
.NET4.xのCOMによる手法
Trace.WriteLine や Console.WriteLine
引数や返り値の型を問わない関数
秀丸本体から提供されている関数
秀丸終了時に、メソッドを実行
秀丸x64版に対応する
.NET4.xから.NET5以降のdllを呼ぶ
.NET4.xのCOMとWPF
.NET4.xのCOMとWPF
COMとしてWPFを使ってみる
COMとしてWVVMを利用したWPFを使ってみる
.NET5のCOMによる手法
.NET5のCOMによる手法
.NET5のCOMによる手法
Trace.WriteLine や Console.WriteLine
引数や返り値の型を問わない関数
秀丸本体から提供されている関数
秀丸終了時に、メソッドを実行
秀丸x64版に対応する
.NET5での文字列比較の落とし穴
.NET6のCOMによる手法
.NET6のCOMによる手法
.NET6のCOMによる手法
Hm.NetCOM
Hm.NetCOM
Hm.NetCOMとは
更新情報
nuget経由での使い方
nugetを経由しない使い方
秀丸のバージョン
秀丸x64版に対応する
秀丸終了時に、メソッドを実行
Hm.NetCOM 編集エリア編
Hm.NetCOM 編集エリア編
秀丸で編集中ファイルのフルパス
編集中のテキスト内容
選択中のテキスト内容
カーソルの行のテキストの取得
カーソルの位置の取得
マウスに対応するカーソルの取得
秀丸ハンドル
特殊なスリープと解除
更新や具体的操作があるかのチェック
Hm.NetCOM マクロ編
Hm.NetCOM マクロ編
秀丸マクロ変数の読み書き
秀丸マクロを文字列で実行
秀丸マクロの関数を実行
秀丸マクロの(関数的な)文を実行
マクロ実行中か、否か
秀丸マクロを改めて実行(文字列編)
秀丸マクロを改めて実行(メソッド編)
秀丸マクロを改めて実行(ファイル指定編)
秀丸マクロの静的な変数の読み書き
Hm.Macro.Flags.***
Hm.NetCOM ファイル編
Hm.NetCOM ファイル編
外部ファイルのエンコード自動判定(秀丸文字コード判定)
外部ファイルテキストの読み込み(秀丸文字コード判定)
Hm.NetCOM アウトプット枠編
Hm.NetCOM アウトプット枠編
アウトプット枠への出力
アウトプット枠の内容の一時退避
一時退避した内容の復元
アウトプット枠のクリア
アウトプット枠へのコマンド実行
アウトプット枠の基本ディレクトリ設定
アウトプット枠のハンドル
Hm.NetCOM ファイルマネージャ枠編
Hm.NetCOM ファイルマネージャ枠編
モードを設定
モードを取得
プロジェクトを読み込む
プロジェクトを保存
プロジェクト名を取得
コマンド実行
ファイルマネージャ枠のハンドルの取得
更新された状態か取得
現在のフォルダのパスを取得
フォームを使って「同期」タイマー
Hm.NetCOM WPF編
Hm.NetCOM WPF編
WPFアプリ形式もインプロセスで呼び出せる
WPFのWVVMが利用されてものを呼び出す
Hm.NetCOM タブー編
Hm.NetCOM タブー編
C#側から秀丸アクティブウィンドウ生成
DynamicObjectでラップするべからず
秀丸マクロ変数はプロセスを跨ぐバッファー
C#とC++の値のやりとり
C#と.NETとAzure
C#と.NETとAzure
Webアプリや関数アプリの設定
ASP.NETの発行
C#と.NETとその他の情報
C#と.NETとその他の情報
.NETとDocker
jsmode用の.NETのCOM
.NET via V8 ES6
.NET via V8 ES6
hmV8
.NET Framework
via
V8 ES6
更新履歴
NGenのススメ
~読み込み実行の高速化~
秀丸jsmodeとの互換の関数
hmV8専用の関数群
秀丸マクロの関数を実行
秀丸マクロの(関数のような)文を実行
require関数
hmV8の様々な例題集
hmV8の様々な例題集
ドライブの空き容量
正規表現
Webデータの取得
フォームやGUI
外部プロセス実行と結果取得
ドラッグアンドドロップ
クリップボード内のファイルリストのペースト
ミニウェブブラウザ
WScript.Shellの利用
相対パスと絶対パス
既存のES6ライブラリの使用例
既存のES6ライブラリの使用例
マークダウン ⇒ HTML への変換
JavaScript/CSS/HTMLの整形
日本語ドメイン ⇔ PunyCode 相互変換
自然言語の判定
ECMAScript6の文法メモ
ECMAScript6の文法メモ
ECMAScript6の文法詳細
let
const
2進数・8進数
テンプレート文字列
分割代入
正規表現のキャプチャ
関数と引数
for...of
シンボル
アロー関数
Map と Set
オブジェクトの初期化・プロパティ
ジェネレータとイテレータ
クラスの基本
クラスの継承
クラスへのアクセサー
メタメソッド
TypeScript用の型定義ファイル
TypeScript用の型定義ファイル
hmV8用途のTypeScript型定義ファイル
.NETのTypeScript型定義ファイル生成
更新履歴
.NET & ActiveX via JavaScript
.NET & ActiveX via JavaScript
hmJS
.NET & ActiveX
via
JavaScript
更新履歴
NGenのススメ
~読み込み実行の高速化~
デバッグメッセージ
秀丸・ストアアプリ版での利用
秀丸jsmodeとの互換の関数
秀丸マクロから利用するhmJSの関数
hmJS専用の関数群 ①
秀丸の編集領域用の関数
hmJSが秀丸マクロへアクセスする関数
秀丸マクロの関数を実行
秀丸マクロの(関数のような)文を実行
外部ファイルの文字コードの自動判定(秀丸アルゴ)
require関数
hmJS アウトプット枠編
hmJS アウトプット枠編
アウトプット枠への出力
アウトプット枠の内容の一時退避
一時退避した内容の復元
アウトプット枠のクリア
アウトプット枠へのコマンド実行
アウトプット枠の基本ディレクトリ設定
hmJS ファイルマネージャ枠編
hmJS ファイルマネージャ枠編
モードを設定
モードを取得
プロジェクトを読み込む
プロジェクトを保存
プロジェクト名を取得
コマンド実行
更新された状態か取得
現在のフォルダのパスを取得
長大文字列を秀丸エディタに反映
.NETコアライブラリの使い方
「C#」で自作したdllの読み込み
手動で追加する.NET標準dllの例
~ Form等 ~
ActiveXObject
秀丸マクロからの問い合わせ基本API
(hmJSでこれらのAPIの利用機会は、ほぼありません)
秀丸マクロからの問い合わせ応用API
(hmJSでこれらのAPIの利用機会は、ほぼありません)
hmJS TypeScript用の型定義ファイル
.NET via PowerShell
.NET via PowerShell
hmPS
.NET Framework
via
PowerShell
更新履歴
NGenのススメ
~読み込み実行の高速化~
開発環境
秀丸・ストアアプリ版での利用
デバッグメッセージ
hmPS.ps1
秀丸マクロから利用するhmPSの関数
hmPS専用の関数群 ①
秀丸の編集領域用の関数
hmPSが秀丸マクロへアクセスする関数
秀丸マクロの関数を実行
秀丸マクロの(関数のような)文を実行
外部ファイルの文字コードの自動判定(秀丸アルゴ)
hmPS アウトプット枠編
hmPS アウトプット枠編
アウトプット枠への出力
アウトプット枠の内容の一時退避
一時退避した内容の復元
アウトプット枠のクリア
アウトプット枠へのコマンド実行
アウトプット枠の基本ディレクトリ設定
hmPS ファイルマネージャ枠編
hmPS ファイルマネージャ枠編
モードを設定
モードを取得
プロジェクトを読み込む
プロジェクトを保存
プロジェクト名を取得
コマンド実行
更新された状態か取得
現在のフォルダのパスを取得
長大文字列を秀丸エディタに反映
文字コードの指定
クラスを使ったフォームやGUI
「C#」で作ったdllの読み込み
秀丸マクロからの問い合わせ基本API
(hmPSでこれらのAPIの利用機会は、ほぼありません)
.NET via IronPython
.NET via IronPython
hmPy
.NET Framework
via
IronPython
更新履歴
hmPyの基本思想
デバッグメッセージ
開発環境
秀丸・ストアアプリ版での利用
from hmPy import *
秀丸マクロから利用するhmPyの関数
hmPy専用の関数群 ①
秀丸の編集領域用の関数
hmPyが秀丸マクロへアクセスする関数
秀丸マクロの関数を実行
秀丸マクロの(関数のような)文を実行
外部ファイルの文字コードの自動判定(秀丸アルゴ)
hmPy アウトプット枠編
hmPy アウトプット枠編
アウトプット枠への出力
アウトプット枠の内容の一時退避
一時退避した内容の復元
アウトプット枠のクリア
アウトプット枠へのコマンド実行
アウトプット枠の基本ディレクトリ設定
hmPy ファイルマネージャ枠編
hmPy ファイルマネージャ枠編
モードを設定
モードを取得
プロジェクトを読み込む
プロジェクトを保存
プロジェクト名を取得
コマンド実行
更新された状態か取得
現在のフォルダのパスを取得
秀丸マクロからの問い合わせAPI
(hmPyでこれらのAPIの利用機会は、ほぼありません)
秀丸マクロからの問い合わせAPI
(hmPyでこれらのAPIの利用機会は、ほぼありません)
基本のAPI
応用のAPI
単純な数値や文字列の具体的な例
リストやタプルの具体的な例
文字コードの指定
長大文字列を秀丸エディタに反映
自作等の.pyファイルのimport
「C#」で作ったdllの読み込み
IronPythonの標準ライブラリの読み込み
「C#」から「IronPython」への変換
ネイティブdllのWin32 APIの利用
hmPyの様々な例題集
hmPyの様々な例題集
IronPythonの様々な.NETを使ったコード例
ドライブの空き容量
Webデータの取得
.py ファイルの読み込み
フォームやGUI
Excel
外部プロセス実行と結果取得
クラスを使ったフォームやGUI
ドラッグアンドドロップ
カレンダーの利用
フォントリストとプレビュー
クリップボード内のファイルリストのペースト
手書き入力
ミニウェブブラウザ
HTMLのエンコードとデコード
HTMLの高度なパース
難解なCSVの正しい読み取り
秀丸マクロ内でWPF
マクロから渡した関数名でリアルタイムに.dllを生成
入力補完用の(モック/スタブ)のモジュール
hmPy.py
リファレンス
.NET via C# like Native
.NET via C# like Native
DllExport.bat による手法
DllExport.bat による手法
DllExport.bat とは
x86 と x64
数値の扱い方① IntPtr型
数値の扱い方② IntPtr より nint が便利
文字列の扱い方①
[MarshalAs(UnmanagedType.LPWStr)]
String
文字列の扱い方② unsafe char *
文字列の扱い方③ SafeHandle を継承
[DllExport]メソッドから別の[DllExport]メソッドを呼ぶとエラー
中間アセンブリdllの配置フォルダの追加
ネイティブdllの配置パスの追加
秀丸本体から提供されている関数
引数や返り値の型を問わない関数
Trace.WriteLine や Console.WriteLine
Visual Studio でのデバッグ
(ブレイクポイントやステップ実行)
.NET4.xから.NET5以降のdllを呼ぶ
秀丸ディレクトリの*.dllのNGen
.NET系「秀丸マクロ代替言語」比較
軽量・言語
軽量・言語
秀丸マクロ via Python
秀丸マクロ via Python
秀丸マクロ via Python
更新履歴
デバッグメッセージ
マクロに埋め込む or 別ファイルにする
from hmPython3 import *
hmPython3専用の関数群
hmPython3専用の関数群
hmPython3専用の関数群 ①
秀丸の編集領域用の関数
hmPython3が秀丸マクロへアクセスする関数
秀丸マクロの関数を実行
秀丸マクロの(関数のような)文を実行
外部ファイルの文字コードの自動判定(秀丸アルゴ)
hmPython3 アウトプット枠編
hmPython3 アウトプット枠編
アウトプット枠への出力
アウトプット枠の内容の一時退避
一時退避した内容の復元
アウトプット枠のクリア
アウトプット枠へのコマンド実行
アウトプット枠の基本ディレクトリ設定
hmPython3 ファイルマネージャ枠編
hmPython3 ファイルマネージャ枠編
モードを設定
モードを取得
プロジェクトを読み込む
プロジェクトを保存
プロジェクト名を取得
コマンド実行
更新された状態か取得
現在のフォルダのパスを取得
秀丸マクロから利用するhmPython3の関数
秀丸マクロからの問い合わせ基本API
(hmPython3でこれらのAPIの利用機会は、ほぼありません)
長大文字列を秀丸エディタに反映
秀丸マクロの関数をPythonでラップ
Python 外部モジュール
Python 外部モジュール
外部モジュールのインストール
pip 自体のバージョンアップ
うまく使えない外部モジュール
社内ネットワークでproxyがある場合
「numpyとscipy」は米カリフォルニア大
開発環境との連携
開発環境との連携
Visual StudioとhmPython3の設定
テストとフェイク(モック/スタブ)の
hmPython.py
他の言語とのインプロセス連携
hmPythonとアウトプロセスPython連携
特別な環境下でのhmPython3利用設定
特別な環境下でのhmPython3利用設定
hmPython3.xmlでpythonのディレクトリ変更
秀丸・ストアアプリ版での利用
他のバージョンのPythonを使えるようにする
秀丸マクロ via PHP
秀丸マクロ via PHP
秀丸マクロ via PHP
更新履歴
アウトプット枠が出力先
$Hmはスーパーグローバル変数
hmPeach 専用の関数群
hmPeach 専用の関数群
hmPeach と jsmode
hmPeach 専用の関数群 ①
秀丸の編集領域用の関数
hmPeachが秀丸マクロへアクセスする関数
秀丸マクロの関数を実行
秀丸マクロの(関数のような)文を実行
hmPeach アウトプット枠編
hmPeach アウトプット枠編
アウトプット枠への出力
アウトプット枠の内容の一時退避
一時退避した内容の復元
アウトプット枠のクリア
アウトプット枠へのコマンド実行
アウトプット枠の基本ディレクトリ設定
hmPeach ファイルマネージャ枠編
hmPeach ファイルマネージャ枠編
モードを設定
モードを取得
プロジェクトを読み込む
プロジェクトを保存
プロジェクト名を取得
コマンド実行
ファイルマネージャ枠のハンドルの取得
更新された状態か取得
現在のフォルダのパスを取得
秀丸マクロからの問い合わせ基本API
(hmPeachでこれらのAPIの利用機会は、ほぼありません)
長大文字列を秀丸エディタに反映
秀丸マクロの関数をPHPでラップ
PHPとAzure
PHPとAzure
PHPとVSCodeとAzure
PeachPieを利用したPHPとAzure
PHPとIIS
PHPとIIS
PHPとIIS
Win10やWin11でIISを有効化
Windows ServerでIISを有効化
秀丸マクロ via NodeJS
秀丸マクロ via NodeJS
秀丸マクロ via NodeJS
更新履歴
NGenのススメ
~読み込み実行の高速化~
デバッグメッセージ
秀丸jsmodeとの互換の関数
hmEdgeJS専用の関数群 ①
秀丸の編集領域用の関数
hmEdgeが秀丸マクロへアクセスする関数
秀丸マクロの関数を実行
秀丸マクロの(関数のような)文を実行
外部ファイルの文字コードの自動判定(秀丸アルゴ)
hmEdgeJS アウトプット枠編
hmEdgeJS アウトプット枠編
アウトプット枠への出力
アウトプット枠の内容の一時退避
一時退避した内容の復元
アウトプット枠のクリア
アウトプット枠へのコマンド実行
アウトプット枠の基本ディレクトリ設定
hmEdgeJS ファイルマネージャ枠編
hmEdgeJS ファイルマネージャ枠編
モードを設定
モードを取得
プロジェクトを読み込む
プロジェクトを保存
プロジェクト名を取得
コマンド実行
ファイルマネージャ枠のハンドルの取得
更新された状態か取得
現在のフォルダのパスを取得
require と パス
サードパーティのパッケージ
(ライブラリ) の使用
グローバル変数と特殊な挙動
hmEdgeJSとhmV8の連携
hmEdgeJSとhmPython3の連携
フォルダ名の制限
hmEdgeJS TypeScript用の型定義ファイル
hmEdgeJSを使わず
単純にnodejsでインタプリタ実行
uLua
uLua
uLua 秀丸セット
更新履歴
uLua.exe
Lua の各種 Tips
jLua
jLua
jLua 秀丸セット
更新履歴
jLua.exe
jLuaの特別な機能や文法
Lua の各種 Tips
ネイティブ・言語
ネイティブ・言語
秀丸マクロ via C++
Hm.CppInvoke
Hm.CppInvokeとは
更新情報
Hm.CppInvokeの使い方
nuget経由での使い方
はじめてのイントロダクション
マルチスレッド/MTのススメ
DllMainのススメ
秀丸のバージョン
秀丸本体のフルパス
秀丸終了時に、メソッドを実行
Hm.CppInvoke 編集エリア編
Hm.CppInvoke 編集エリア編
秀丸で編集中ファイルのフルパス
編集中のテキスト内容
選択中のテキスト内容
カーソルの行のテキストの取得
カーソルの位置の取得
マウスに対応するカーソルの取得
秀丸ハンドル
特殊なスリープと解除
更新や具体的操作があるかのチェック
Hm.CppInvoke マクロ編
Hm.CppInvoke マクロ編
秀丸マクロ変数の読み書き
秀丸マクロを文字列で実行
秀丸マクロの関数を実行
秀丸マクロの(関数的な)文を実行
マクロ実行中か、否か
秀丸マクロを改めて実行(文字列編)
秀丸マクロを改めて実行(メソッド編)
秀丸マクロを改めて実行(ファイル指定編)
秀丸マクロの静的な変数の読み書き
Hm.Macro.Flags.***
Hm.CppInvoke ファイル編
Hm.CppInvoke ファイル編
外部ファイルのエンコード自動判定(秀丸文字コード判定)
外部ファイルテキストの読み込み(秀丸文字コード判定)
Hm.CppInvoke アウトプット枠編
Hm.CppInvoke アウトプット枠編
アウトプット枠への出力
アウトプット枠の内容の一時退避
一時退避した内容の復元
アウトプット枠のクリア
アウトプット枠へのコマンド実行
アウトプット枠の基本ディレクトリ設定
アウトプット枠のハンドル
Hm.CppInvoke ファイルマネージャ枠編
Hm.CppInvoke ファイルマネージャ枠編
モードを設定
モードを取得
プロジェクトを読み込む
プロジェクトを保存
プロジェクト名を取得
コマンド実行
ファイルマネージャ枠のハンドルの取得
更新された状態か取得
現在のフォルダのパスを取得
Hm.CppInvoke タブー編
Hm.CppInvoke タブー編
C++側から秀丸アクティブウィンドウ生成
秀丸マクロ変数はプロセスを跨ぐバッファー
export関数の呼び出し方の型の判定
浮動小数点版専用にコンパイルする方法
Hm.CppInvokeの様々な例題集
Hm.CppInvokeの様々な例題集
数値→ローマ数値
可変長引数
ファイルチェック
CPUチェック
コンソールを表示
C++とダイナミックなJson
Jsonの取り扱い
XMLの取り扱い
C++とSQLite3
秀丸マクロ - jsmode
秀丸マクロ - jsmode
jsmode 用のTS定義ファイル
jsmode 用のTS定義ファイル
jsmode 用のTS定義ファイル
更新履歴
導入
ファイル構成
開発の手順
ビルド(*.ts ⇒ *.js)
hm_jsmode.d.ts
hm_jsmode_strict.d.ts
tsconfig.jsonをWebView2に特化
tsconfig.jsonをJScriptに特化
jsmode - ライブラリ
jsmode - ライブラリ
jsmode - require
jsmode - require
require
更新履歴
使用例
モジュールの作成方法
JSONファイルの読み込み
実装されている機能
読み込まれたjsファイルのパス
定義ファイル
jsmode - dumper
jsmode - dumper
dumper
更新履歴
stringify
dir
定義ファイル
jsmode - outputpane
jsmode - outputpane
outputpane
更新履歴
output
outputLine
push
pop
clear
setBaseDir
sendMessage
getWindowHandle
定義ファイル
jsmode - explorerpane
jsmode - explorerpane
explorerpane
更新履歴
setMode
getMode
loadProject
saveProject
getProject
getUpdated
getCurrentDir
sendMessage
getWindowHandle
定義ファイル
jsmode - hidemarucompat
jsmode - hidemarucompat
hidemarucompat
更新履歴
loaddll系
createobject系
定義ファイル
jsmode - .NETでCOM
プロンプト・デバッグ
プロンプト・デバッグ
秀丸・デバッグ出力モニター
秀丸・デバッグ出力モニター
秀丸・デバッグ出力モニター
更新履歴
プレビュー
プレビュー
秀丸・HmMarkdownSimpleServer
秀丸・HmMarkdownSimpleServer
秀丸・HmMarkdownSimpleServer
更新履歴
主な機能
数学の式を使用する場合
Markdig が読めないというエラー
秀丸・HmHtmlPreview
秀丸・HmHtmlPreview
秀丸・HmHtmlPreview
更新履歴
LiveモードとFileモード
秀丸・HmHtmlPreviewChrome
秀丸・HmHtmlPreviewChrome
秀丸・HmHtmlPreviewChrome
更新履歴
秀丸・HmMarkDownPreview
秀丸・HmMarkDownPreview
秀丸・HmMarkDownPreview
更新履歴
秀丸・HmPandocPreviewChrome
秀丸・HmPandocPreviewChrome
秀丸・HmPandocPreviewChrome
HmPandocGFMPreviewChrome.mac
(Github風 Markdown用)
HmPandocMathJaxPreviewChrome.mac
(数式・日本語の数式を含む Markdown用)
HmPandocKatexPreviewChrome.mac
(数式を含む Markdown用 高速描画)
更新履歴
秀丸・HmCustomLivePreview
秀丸・HmCustomLivePreview
秀丸・HmCustomLivePreview
更新履歴
カスタム 入門編
カスタム 初級編
カスタム 中級編
カスタム 応用編
カスタム マークダウン編
秀丸・HmWebBrowserMode
秀丸・HmWebBrowserMode
秀丸・HmWebBrowserMode
更新履歴
画像等の表示
ローカルのHTML等の表示
(無題)の編集内容の表示
外部URLを開く
ローカルファイルを開く
自動起動マクロとの絡め方
HmWebBrowserModeの終了
既知の問題点
秀丸・HmChromeBrowserMode
秀丸・HmChromeBrowserMode
秀丸・HmChromeBrowserMode
更新履歴
秀丸・HmWebView2BrowserMode
秀丸・HmWebView2BrowserMode
秀丸・HmWebView2BrowserMode
更新履歴
秀丸・HmIECapt
秀丸・HmIECapt
秀丸・HmIECapt
更新履歴
ブックマーク・しおり
ブックマーク・しおり
HmBookMark
HmBookMark
HmBookMark
更新履歴
テキスト AI
テキスト AI
ChatGPT で文章を書く
ChatGPT で文章を書く
ChatGPT で文章を書く
更新履歴
API KEYの設定
利用の手引
履歴の削除とトークン数節約
あなた独自の機能を追加してみる
アカウント情報のウォークスルー
ChatGPT 3.5 Turbo
ChatGPT 3.5 Turbo
HmChatGPT35Turbo
更新履歴
API KEYの設定
利用の手引
会話履歴クリアとトークン数節約
「常に手前」と「#TOPMOST」
アカウント情報のウォークスルー
通知・メッセージ
通知・メッセージ
外部アプリからアウトプット枠への出力
外部アプリからアウトプット枠への出力
外部アプリからアウトプット枠への出力
更新履歴
外部アプリからアウトプット枠への出力
(各言語での簡易な呼び出し例)
外部アプリからアウトプット枠への出力
(C#での応用的な呼び出し例)
exe ファイル
秀丸・自動でも終了するメッセージボックス
HmBaloonNotice(秀丸用トースト通知)
HmBaloonNotice(秀丸用トースト通知)
HmBaloonNotice(秀丸用トースト通知 for Vista~Win8.x用)
HmBaloonToast(秀丸用トースト通知 for Win10以上用)
更新履歴
Win10以上での設定
単語補完・強調表示
単語補完・強調表示
単語補完拡張キット
単語補完拡張キット
単語補完拡張キット
更新履歴
チュートリアル① 開発準備
チュートリアル② ウィンドウ
チュートリアル③ 見た目を整える
チュートリアル④ 辞書やコメント
チュートリアル⑤ 編集中のテキスト
その他① キー入力
その他② リスト候補の操作
チュートリアル⑥ 候補が1つなら
チュートリアル⑦ 完成
HmTSIntelliSense・
TS/JSのインテリセンス
HmTSIntelliSense・
TS/JSのインテリセンス
HmTSIntelliSence
TS/JSのインテリセンス
更新履歴
Node.js / tsserver のインストール
マウスポップアップヒント
定義位置へのジャンプ
参照リスト
単語補完の隠されたTips
文字列変換
文字列変換
言語間の翻訳(DeepL Free API利用)
言語間の翻訳(DeepL Free API利用)
DeepL で 翻訳API 取得
DeepLで言語間翻訳 (Python 編)
DeepLで言語間翻訳 (PHP 編)
DeepLで言語間翻訳 (C++ 編)
DeepLで言語間翻訳 (C# 編)
秀丸でCTRL+C+CだとDeepLが反応しない
言語間の翻訳(Google Apps Script利用)
言語間の翻訳(Google Apps Script利用)
Google Apps Script で 翻訳API 作成
GASで言語間翻訳 (C# 編)
GASで言語間翻訳 (JavaScript 編)
GASで言語間翻訳 (Python 編)
分かち書き・ルビ振り
分かち書き・ルビ振り
HmJapanesePhoneticAnalyzer ~分かち書きとルビ振り~
更新情報
秀丸・変換モジュール
秀丸・変換モジュール
変換モジュールの最小のラッパーSDK
更新履歴
変換モジュールの登録方法
ソースや秀丸の機能との結び付き解説
単語リストの正規表現圧縮
単語リストの正規表現圧縮
単語リストの正規表現圧縮 秀丸セット
更新情報
HmWordListRegexCompressをコンソール利用
文字コード変更で潰れる文字の
表示やカスタム
文字コード変更で潰れる文字の
表示やカスタム
HmCustomStringEncoder
文字コード変更で潰れる文字の
表示やカスタム
HmCustomStringEncoder 利用法
HmCustomStringEncoder パラメータ説明
更新情報
日本語ドメイン ⇔ Punycode
Office 連携
Office 連携
秀丸・HmExcelFileLoader
秀丸・HmExcelFileLoader
秀丸・HmExcelFileLoader
更新履歴
リポジトリ 連携
リポジトリ 連携
秀丸→VSCode起動 (Github利用)
秀丸→VSCode起動 (Github利用)
HmOpenVSCodeFromHidemaru
VSCode → Hidemaru を開く
更新情報
Perforceへのチェックイン・アウト
秀丸マクロ自体の処理
秀丸マクロ自体の処理
秀丸マクロファイルのセーブ時に文字コード&BOMチェック
自動起動マクロのまとめ方
その他
その他
HmAllKill(全ての秀丸エディタ強制終了)
ChromeでGithubのリポジトリのサブディレクトリだけ取得
dll作成のための知識
dll作成のための知識
dll作成
C++/CLI 編
dll作成
C++/CLI 編
C++/CLIによるdllでの、マネージ.dllの参照
C#のソースコードをC++/CLIへと静的リンク
C++/CLI 言語仕様 リンク
C++/CLI 書籍 紹介
C++/CLI 必須ツール
C++/CLI 必須ツール
言語コンバータ
オーサリングツール
C++/CLI .NET FrameWork リンク
dll作成
C# 編
dll作成
C# 編
秀丸マクロ用の.dllをC#で作る4つの方法
C++のchar *要求とC#のString
非同期の特性と、処理の後片付け
非同期のタスクロガー
C# 言語仕様 リンク
C# 書籍 紹介
C# .NET FrameWork リンク
C#とC++の値のやりとり
C#とC++の値のやりとり
Byte型とChar型
整数型
浮動小数型
IntPtr型の独特な性質
配列型
配列とポインター(配列自体の変更)
構造体と参照
構造体の構造体
固定配列を持つ構造体
文字列
WinapiとCdecl
dllの関数名とは別名で使う
画像やアイコン
画像やアイコン
クールな秀丸アイコン
タイトルバーのアイコンを一時変更
フォント
フォント
Ricty Diminished JPYen
Github
Twitter