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