[Keyboard Maestro] “Insert Text by Pasting” 問題

Keyboard Maestro をスニペットの入力用に使っている。

TextExpander から Keyboard Maestro へ移行した – with a Christian Wife
https://wacw.cf/2016/11/29/use-keyboard-maestro-as-text-expansion/

ただ一つ問題があった。スニペットの挿入を Insert by Pasting のアクションで実行した場合、現在のクリップボードがそのスニペットの文字列で上書きされてしまうのだ。これは地味に迷惑な仕様である。

これは Insert by Typing によって回避できるけど、スニペットが長い文字列の場合、入力に時間が掛かる。その微妙な待ち時間にイライラさせられるのだ。

また Insert by Typing にした場合、私の環境ではなぜか違うキーが入力されてしまう(US キーボードを使用している)。どうやら、Keyboard Maestro が違うキーマッピングを認識しているみたい(理由は不明)。

一応キーボードの履歴は ClipMenu というアプリで取っているので、メニューバーからクリップボードの履歴を選べばいいんだけど、いちいちその作業をするのが面倒だ。直前のクリップボードをペーストする機会は頻繁にあるからだ。

ClipMenu.com: A clipboard manager for Mac OS X – ClipMenu.com
http://www.clipmenu.com/

なんとかならないかなあとマクロをいろいろいじったり研究していたんだけど、結局海外のフォーラムで答えを見つけた。

Using “Insert Text by Pasting” without destroying clipboard content? – general – Keyboard Maestro Discourse
https://forum.keyboardmaestro.com/t/using-insert-text-by-pasting-without-destroying-clipboard-content/4179/2

意外にシンプルだけど、マクロの最後に Clipboard > Delete Past Clipboard のアクションを追加すればいいのだ。その際 Delete past clipboard の数字を 0 にする(デフォルトは1)。

これで挿入されたクリップボードの内容が削除され、直前のクリップボード内容が復元される。