秀丸エディタでMarkdown整形が爆速になる「太字/斜体/インラインコード/打ち消し」トグルマクロ

ブログ記事を書いてると、地味に時間を食うのが Markdownの装飾 だ。
**太字***斜体*`インラインコード`~~打ち消し~~……。

手で記号を打つのも悪くないが、回数が増えるとダルい。
そこで秀丸のマクロで、選択した文字を一発で囲むもう一回で外す(トグル)やつを作る。


この記事でできるようになること

このマクロを入れると、次がワンキーで回る。

  • 選択範囲を 太字 にする → もう一回で解除
  • 選択範囲を 斜体 にする → もう一回で解除
  • 選択範囲を インラインコード にする → もう一回で解除
  • 選択範囲を 打ち消し にする → もう一回で解除
  • 選択なしでも使える(記号だけ挿入して、カーソルを中へ)

まずは完成品(このまま使える)

マクロ名

md_wrap_toggle.mac

マクロ本体(コピペでOK)

/*
  md_wrap_toggle.mac
  - b: **太字**
  - i: *斜体*
  - c: `インラインコード`
  - s: ~~打ち消し~~
  選択あり:トグル(付いてたら外す)
  選択なし:記号だけ挿入して中へ
*/

$mode = input("Wrap: b=bold / i=italic / c=code / s=strike", "c");

$pre = "";
$post = "";
#back = 0;

if ($mode == "b") {
    $pre = "**"; $post = "**"; #back = 2;
} else if ($mode == "i") {
    $pre = "*";  $post = "*";  #back = 1;
} else if ($mode == "s") {
    $pre = "~~"; $post = "~~"; #back = 2;
} else {
    // default: code
    $pre = "`";  $post = "`";  #back = 1;
}

// 未選択:記号だけ入れて中へ
if (selecting == 0) {
    insert $pre + $post;
    left #back;
    endmacro;
}

// 選択範囲を取得
#sx = seltopx;
#sy = seltopy;
$text = gettext(#sx, #sy, selendx, selendy, 1);

// すでに包まれてるなら外す(トグル)
#plen = strlen($pre);
#tlen = strlen($text);

if (#tlen >= (#plen * 2)) {
    if (leftstr($text, #plen) == $pre && rightstr($text, #plen) == $post) {
        $text = midstr($text, #plen + 1, #tlen - (#plen * 2));
        // 解除モード:そのまま挿入
        delete;
        moveto #sx, #sy;
        insert $text;
        endmacro;
    }
}

// 付けるモード
delete;
moveto #sx, #sy;
insert $pre + $text + $post;

導入手順(3分で終わる)

1) ファイルとして保存する

  1. 秀丸で新規ファイルを開く
  2. 上の「マクロ本体」を丸ごと貼り付ける
  3. ファイル名を md_wrap_toggle.mac にして保存する

置き場所はどこでもOK。分かりやすく Documents\HidemaruMacros\ とかにまとめると管理しやすい。

2) 秀丸に登録する

  1. 秀丸のメニューから [マクロ] → [マクロ登録] を開く
  2. 空いている番号を選ぶ
  3. さっき保存した md_wrap_toggle.mac を指定して登録する

3) ショートカットに割り当てる(おすすめ)

  1. 秀丸のメニューから [その他] → [キー割り当て] を開く
  2. 「マクロ実行(登録した番号)」に好きなキーを割り当てる
  • 例:Ctrl + Shift + M(他と被らなければ何でもOK)

これをやると「選択 → ワンキー」で回る。マクロの価値が一気に上がる。


使い方(例つき)

太字にする(b)

  1. 太字にしたい文字を選択
  2. マクロ実行
  3. b を入力してEnter

実行前

  • 重要な注意点

実行後

  • 重要な注意点

インラインコードにする(c:デフォルト)

コマンド名や関数名を囲むときに使う。いちばん出番が多い。

  1. ipconfig /all を選択
  2. マクロ実行 → 何も入れずEnter(デフォルトが c

実行後

  • ipconfig /all

斜体(i)・打ち消し(s)も同じ

  • 斜体:i
  • 打ち消し:s

トグル(付け外し)が強い

このマクロのキモはここ。

  • すでに **...** で囲まれてる文字を選んで b
    記号が外れて 普通の文字に戻る
  • もう一回 b
    → また太字になる

つまり 同じ操作で付け外しができる


選択なしでも使える(地味に便利)

選択が無い状態で実行すると、記号だけ入れてカーソルを中へ移動する。

例:太字(b)を選ぶとこうなる(カーソルは中央に入る)

****

そこに文字を打てばそのまま太字になる。


カスタム:毎回入力したくない人向け(超おすすめ)

「毎回 b/c/i/s を打つのが面倒」なら、用途別にマクロを複製して固定化するのが早い。

例:インラインコード専用にする(入力なし)

この行:

$mode = input("Wrap: b=bold / i=italic / c=code / s=strike", "c");

をこうする:

$mode = "c";

例:太字専用にする(入力なし)

$mode = "b";

こうすると「選択 → ワンキー」で装飾できる。ブログ執筆が一段速くなる。


まとめ:装飾の手作業を潰すと文章量が増える

ブログは「書く」より「整形」が遅いと止まる。
秀丸は元々速いが、マクロで整形も速くすると、記事の回転数が上がる。

次に作るとさらに強いのはこのへん:

  • 選択行を箇条書き(-)トグル
  • 引用(>)トグル
  • 見出しレベル(#####)上下
  • 選択文字をMarkdownリンク化([text](url)

このへん揃うと、秀丸が「ブログ専用の執筆環境」になるぞ。

コメント

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