秀丸エディタで「選択範囲をコードブロック化」する便利マクロ(Markdown向け)

秀丸で文章書いてて、選択した部分を一発でMarkdownのコードブロック(“`)で囲みたいときあるだろ。
このマクロ入れとくと、ブログ記事(WordPressにコピペ)を書くときがめちゃ楽になる。


これで何ができる?

✅ できること

  • 選択範囲がある状態で実行
    → 選択したテキストを ```言語``` で囲む(言語は入力)
  • 選択範囲がない状態で実行
    → 空のコードブロックを挿入して、中の空行にカーソルを移動(すぐ書ける)

✅ こんな用途に刺さる

  • 技術記事で「ここからコード」ってところを素早く整形
  • コマンドやログを囲むのが面倒なとき
  • “ちょい長い説明” と “コード” を交互に書く記事

導入手順(コピペでOK)

1) マクロファイルを作る

  1. メモ帳でも秀丸でもいいから、新規ファイルを作成
  2. ファイル名を md_codeblock_wrap.mac にする
  3. 下のコードをそのまま貼って保存

マクロ本体(これを保存)

/*
  md_codeblock_wrap.mac
  - 選択範囲: ```lang ... ``` で囲む
  - 未選択: 空のコードブロックを挿入して中へ移動
*/

// 言語指定(空なら言語なし)
$lang = input("コードブロックの言語(例: python / bash / js。空でなし)", "");

// 開始フェンス(``` + lang)
$fence = "```";
if ($lang != "") {
    $fence = $fence + $lang;
}

// 未選択なら空ブロック挿入して中へ
if (selecting == 0) {
    insert $fence + "\n\n```\n";
    up 2;          // 中の空行へ
    endmacro;
}

// 選択範囲を退避(選択は維持)
#sx = seltopx;
#sy = seltopy;
$text = gettext(#sx, #sy, selendx, selendy, 1);

// 選択範囲を削除(Delと同じ動作=選択中なら範囲ごと消える)
delete;

// 念のため開始位置へ
moveto #sx, #sy;

// 開始フェンス
insert $fence + "\n";

// 本文:末尾が改行じゃなければ足す
if (rightstr($text, 2) == "\r\n") {
    // OK
} else if (rightstr($text, 1) == "\n") {
    // OK
} else {
    $text = $text + "\n";
}
insert $text;

// 終了フェンス
insert "```\n";

2) 秀丸に登録する

  1. 秀丸のメニューで [マクロ] → [マクロ登録]
  2. 空いてる番号にこの .mac を登録
  3. ついでに [キー割り当て] でショートカット割り当てしとけ(例:Ctrl + Shift + K

使い方

パターンA:選択して実行(記事で一番使う)

  1. 囲みたい範囲をドラッグして選択
  2. マクロ実行
  3. 言語を聞かれるので入力(例:python / bash / txt / 空でもOK)

例(選択したテキスト)

  • ipconfig /all

実行後(記事に貼るとこうなる)

ipconfig /all

パターンB:未選択で実行(これも地味に便利)

  1. カーソル置く
  2. マクロ実行
  3. 空のコードブロックが出て、中にカーソルが入る

こうなる:

あとは中にコード書ける。


カスタム:毎回言語聞かれるのがダルい場合

デフォルト言語を入れとく

この行を:

$lang = input("コードブロックの言語(例: python / bash / js。空でなし)", "");

こう変える(例:bashをデフォルト):

$lang = input("コードブロックの言語(例: python / bash / js。空でなし)", "bash");

空で確定すれば「言語なし」にもできる。


よくあるハマりどころ(先に潰しとく)

Q1. 間違って消えた気がする

A. マクロ内で 選択範囲は一旦 delete して、囲んだ形で入れ直す
でも秀丸は普通に Undo(元に戻す) できるから安心しろ。

Q2. 改行が変になる

A. 末尾に改行が無いときは、マクロが自動で改行を足す仕様にしてある。
コードブロックは「閉じ “` が次行に来る」ほうが崩れにくいから、これが正解。


この記事の締め(ブログ向け)

秀丸は「編集の速さ」が武器だ。
マクロ一つ入れるだけで、ブログ用の整形作業が“手作業”から“ワンキー”になる
こういう小さい時短が積み重なると、投稿ペースが上がって結果的に強い。

コメント

タイトルとURLをコピーしました