空腹おやじのログと備忘録

VBA(主にExcel)でいろいろな実験的な事とか、Linuxのコマンドとか設定とかについて忘れないように、あれこれと・・・

秀丸で、選択行の行頭に文字を挿入するマクロ

先日、人力検索はてなで、
q.hatena.ne.jp
に回答して、ベストアンサーを頂いたのですが
ベースになった物があって、C++のソースを編集する際に、

  • 行コメントの追加
  • 既存の行を改修してコメント化

するために以前作ったもの(下記)でした。
(今回の件で、ちょっとしたバグを発見して修正したけど・・・)

あちらにアップしたものは、コメント削除したものなので、わかりにくかったかも。

$comment_prefix = "//";

//範囲選択されているか
if ( selecting == 1 )
{
	//範囲選択されていたら解除
	escape;

	//選択開始行
	#TargetLine = seltopy + 1;

	//選択終了行
	if ( selendx == 0 )
	{
		//選択終了行のカーソル位置が行先頭なら、その行はコメント化しない
		#EndLine    = selendy;
	}
	else
	{
		#EndLine    = selendy + 1;
	}

	//選択開始行に移動
	movetolineno 1, seltopy + 1;
}
else
{
	//選択開始行
	#TargetLine = lineno;

	//選択終了行
	#EndLine    = lineno;
}

//最終行に移動
gofileend;

//最終行取得
#FileEndLine = lineno;

//元の行に戻る
movetolineno 1, #TargetLine;

while ( #TargetLine != #EndLine + 1 )
{
	//行先頭に移動
	golinetop;

	//コメント化
	insert $comment_prefix;

	//処理行をインクリメント
	#TargetLine = #TargetLine + 1;

	if ( #TargetLine > #FileEndLine )
	{
		break;
	}

	//1行下へ移動
	movetolineno 1, #TargetLine;
}