現在秀丸エディタで開いているテキストに対して、以下の関数を利用することが出来ます。
現在編集中の秀丸エディタのテキスト全体を得る
現在編集中の秀丸エディタのテキスト全体を、文字列へと変更する
#PY = loaddll( hidemarudir + @"\hmPy.dll" ); #_ = dllfuncw( #PY, "DoString", R"IRONPYTHON( totaltext = hm.Edit.TotalText; hm.debuginfo(totaltext); hm.Edit.TotalText = "あいうえお"; )IRONPYTHON"); freedll( #PY );
(単純選択のみが対象となります。ボックス選択や複数選択は対象にはなりません)
現在編集中の秀丸エディタの「選択している」テキストを得る。
現在編集中の秀丸エディタの「選択している」テキストを、"文字列"へと置き換える。
#PY = loaddll( hidemarudir + @"\hmPy.dll" ); #_ = dllfuncw( #PY, "DoString", R"IRONPYTHON( # 何かを単純選択していたら、テキストが得られる selectedtext = hm.Edit.SelectedText; hm.debuginfo(selectedtext); hm.Edit.SelectedText = "選択しているテキストをこの文字列に置き換えた"; )IRONPYTHON"); freedll( #PY );
現在編集中の秀丸エディタの「カーソルがある行」のテキストを得る。
現在編集中の秀丸エディタの「カーソルがある行」のテキストを、文字列へと置き換える。
#PY = loaddll( hidemarudir + @"\hmPy.dll" ); #_ = dllfuncw( #PY, "DoString", R"IRONPYTHON( linetext = hm.Edit.LineText; hm.debuginfo(linetext); # 行のテキストを入れ替える感じにするなら、最後に「\n」を付けること。 hm.Edit.LineText = "カーソル行のテキストをこれに変更\n"; )IRONPYTHON"); freedll( #PY );
現在選択中の秀丸エディタのカーソル位置の行番号を得る。
秀丸マクロのlinenoと同じ値。
現在選択中の秀丸エディタのカーソル位置のカラム値を得る。
秀丸マクロのcolumnと同じ値。
#PY = loaddll( hidemarudir + @"\hmPy.dll" ); #_ = dllfuncw( #PY, "DoString", R"IRONPYTHON( lineno = hm.Edit.CursorPos.lineno; column = hm.Edit.CursorPos.column; hm.debuginfo( str(lineno) + "," + str(column) ); )IRONPYTHON"); freedll( #PY );
現在選択中の秀丸エディタの「マウスの位置に対応するカーソル位置」の行番号を得る。
現在選択中の秀丸エディタの「マウスの位置に対応するカーソル位置」のカラム値を得る。
#PY = loaddll( hidemarudir + @"\hmPy.dll" ); #_ = dllfuncw( #PY, "DoString", R"IRONPYTHON( lineno = hm.Edit.MousePos.lineno; column = hm.Edit.MousePos.column; hm.debuginfo( str(lineno) + "," + str(column) ); )IRONPYTHON"); freedll( #PY );
#PY = loaddll( hidemarudir + @"\hmPy.dll" ); if (! #PY) { message("hmPYが導入されいません。"); endmacro; } #_ = dllfuncw( #PY, "DoString", R"IRONPYTHON( import clr clr.AddReferenceByPartialName("System.Web") import System html = System.Web.HttpUtility.HtmlEncode(hm.Edit.TotalText) html = html.Replace("\r\n", "\r") html = html.Replace("\n", "\r") html = html.Replace("\r", "<br>\r\n") html = html.Replace(" ", " ") hm.Edit.TotalText = html )IRONPYTHON" ); freedll( #PY );