ブログ記事を書いてると、地味に時間を食うのが 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) ファイルとして保存する
- 秀丸で新規ファイルを開く
- 上の「マクロ本体」を丸ごと貼り付ける
- ファイル名を
md_wrap_toggle.macにして保存する
置き場所はどこでもOK。分かりやすく
Documents\HidemaruMacros\とかにまとめると管理しやすい。
2) 秀丸に登録する
- 秀丸のメニューから [マクロ] → [マクロ登録] を開く
- 空いている番号を選ぶ
- さっき保存した
md_wrap_toggle.macを指定して登録する
3) ショートカットに割り当てる(おすすめ)
- 秀丸のメニューから [その他] → [キー割り当て] を開く
- 「マクロ実行(登録した番号)」に好きなキーを割り当てる
- 例:
Ctrl + Shift + M(他と被らなければ何でもOK)
これをやると「選択 → ワンキー」で回る。マクロの価値が一気に上がる。
使い方(例つき)
太字にする(b)
- 太字にしたい文字を選択
- マクロ実行
bを入力してEnter
実行前
- 重要な注意点
実行後
- 重要な注意点
インラインコードにする(c:デフォルト)
コマンド名や関数名を囲むときに使う。いちばん出番が多い。
ipconfig /allを選択- マクロ実行 → 何も入れず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))
このへん揃うと、秀丸が「ブログ専用の執筆環境」になるぞ。

コメント