Obsidian:ホットストリングを活用する

ツール活用

日本人ゆえに仕方ない

Obsidianのノートは最低限の労力であるマークダウンを駆使して、見やすくすることが望ましい。

しかし日本人は日本語で文章を書く以上は、半角英数字で記入するマークダウンと全角文字変換で書く文のIME切り分けがとりわけメンドイ。

そのジレンマをいくらかでも解消するために、Obsidian上でIME状態を把握する手段を検討したりもした。

もう一つの手段として、全角文字変換状態であっても作用するホットストリングを活用する手がある。

ホットストリングは、ユーザーが特定の文字列をタイプしたときにアクションを発生させられる機能である。  
入力された文字列を別の文字列を入力する自動置換型と、ホットキーのようにスクリプトを実行するタイプがある。

というわけで、私が日常で多用しているObsidian用のAutoHotkeyホットストリングを紹介します。

使用例

  • 日時をいろんなパターンで使い分けたいときに、今日の日付はいつだっけとカレンダーを見たり、時間を確認するのに時計を見なくても呼び出せる
  • マークダウン見出しをIME全角状態で無理やり再現入力するときに、わりと最後の半角空白がネックなので重宝する
    • ちなみに見出しにしたい文字列を書いた行終でホットストリングを発動しても、行頭にちゃんと挿入できる
  • Image Layoutsプラグインは、複数の画像を横並びや上手いことあてはめレイアウトしてくれるもの。画像をドラッグ&ドロップを持ち込む際に持ち込み先を、先に用意する使い方
    • Image Layouts記述は、画像を放り込むかアドレス書いたあとに、「image-layout-masonry-」の行頭をバックスペースで1行目にくっつけることで上手く発動する。
# 年月日略 YYMMDD
# 「ymd;」と入力で発動
250413

# 日付1 YYYY-MM-DD
# 「dd;」と入力で発動
2025-04-13

# 日付2 YYYY-MM-DD(ddd)
# 「ddw;」と入力で発動
2025-04-13(日)

# 日付3 `YY/M/D
# 「dd/;」と入力で発動
'25/4/13

# 日時1 YYYY-MM-DD HH:MM
# 「ddt;」と入力で発動
2025-04-13 17:46

# 日時2 YYYY-MM-DD(ddd) HH:MM
# 「ddwt;」と入力で発動
2025-04-13(日) 17:46

# 日時3 YYYY-MM-DD_HHMMSS
# 「ddts;」と入力で発動
2025-04-13_174630

# 時間1 HH:MM
# 「tt;」と入力で発動
17:46

# 見出しレベル2~5
# 「#2;」と入力で発動
## 

# 「#3;」と入力で発動
### 

# 「#4;」と入力で発動
#### 

# 「#5;」と入力で発動
##### 

# Image Layoutプラグイン用
# 「im2;」と入力で発動
```
image-layout-masonry-2


```

# 「im3;」と入力で発動
```
image-layout-masonry-3



```

# 「im4;」と入力で発動
```
image-layout-masonry-4




```

# 「im5;」と入力で発動
```
image-layout-masonry-5





```
GitHub - vertis/obsidian-image-layouts
Contribute to vertis/obsidian-image-layouts development by creating an account on GitHub.

AutoHotkey記述サンプル

/* ------------------------------------------------------------
; HotStrings
*/
#Hotstring c0

; 年月日略 YYMMDD
:?*:ymd;::
    FormatTime, vHottmp, A_Now, yyMMdd
    Clipboard := vHottmp
    Send,^v
Return

; 日付1 YYYY-MM-DD
:?*:dd;::
    FormatTime, vHottmp, A_Now, yyyy-MM-dd
    Clipboard := vHottmp
    Send,^v
Return

; 日付2 YYYY-MM-DD(ddd)
:?*:ddw;::
    FormatTime, vHottmp, A_Now, yyyy-MM-dd(ddd)
    Clipboard := vHottmp
    Send,^v
Return

; 日付3 `YY/M/D
:?*:dd/;::
    FormatTime, vHottmp, A_Now, y/M/d
    Clipboard := "'" . vHottmp
    Send,^v
Return

; 日時1 YYYY-MM-DD HH:MM
:?*:ddt;::
    FormatTime, vHottmp, A_Now, yyyy-MM-dd HH:mm
    Clipboard := vHottmp
    Send,^v
Return

; 日時2 YYYY-MM-DD(ddd) HH:MM
:?*:ddwt;::
    FormatTime, vHottmp, A_Now, yyyy-MM-dd(ddd) HH:mm
    Clipboard := vHottmp
    Send,^v
Return

; 日時3 YYYY-MM-DD_HHMMSS
:?*:ddts;::
    FormatTime, vHottmp, A_Now, yyyy-MM-dd_HHmmss
    Clipboard := vHottmp
    Send,^v
Return

; 時間1 HH:MM
:?*:tt;::
    FormatTime, vHottmp, A_Now, HH:mm
    Clipboard := vHottmp
    Send,^v
Return

; 見出し
:?*:#2;::
    Send,{Home}
    Clipboard := "## "
    Send,^v
Return

:?*:#3;::
    Send,{Home}
    Clipboard := "### "
    Send,^v
Return

:?*:#4;::
    Send,{Home}
    Clipboard := "#### "
    Send,^v
Return

:?*:#5;::
    Send,{Home}
    Clipboard := "##### "
    Send,^v
Return

:?*:im2;::
    Clipboard := "```````n" . "image-layout-masonry-2" . "`n`n`n```````n"
    Send,^v
Return

:?*:im3;::
    Clipboard := "```````n" . "image-layout-masonry-3" . "`n`n`n`n```````n"
    Send,^v
Return

:?*:im4;::
    Clipboard := "```````n" . "image-layout-masonry-4" . "`n`n`n`n`n```````n"
    Send,^v
Return

:?*:im5;::
    Clipboard := "```````n" . "image-layout-masonry-5" . "`n`n`n`n`n`n```````n"
    Send,^v
Return

ご参考まで。