#author("2018-09-05T14:52:29+09:00","default:wikiwriter","wikiwriter") &tag(KeyboardMaestro); *目次 [#qc839591] #contents *関連ページ [#h87eca54] *参考情報 [#mfca405b] -[[TextExpander から Keyboard Maestro へ移行した – with a Christian Wife:http://blog.withachristianwife.com/2016/11/29/use-keyboard-maestro-as-text-expansion/]] -[[[Keyboard Maestro] “Insert Text by Pasting” 問題 – with a Christian Wife:http://blog.withachristianwife.com/2016/12/23/insert-text-by-pasting-problem-in-km/]] *ペースト [#r8cf43d3] **テキストペースト時にカーソルポジションを指定 [#kd1fa855] - "%|%"がカーソル位置に該当する。ただしMacroの戻り値として文字列を返し、そこに %|%が含まれているような場合、うまくいかない模様。 *マクロ [#y58495f1] **サブマクロを呼び出す [#mbad0b06] -[[action:Execute a Macro [Keyboard Maestro Wiki]:https://wiki.keyboardmaestro.com/action/Execute_a_Macro]]にあるように、Execute Macroアクションを使用する。 **パラメータの受け渡し [#n6b566bd] -呼び出し先がシェルスクリプトの場合、クリップボード経由でわたしたり、またはKM変数でわたすことができる。 -クリップボードの場合、呼び出し先では普通にpbpasteで内容を読み込む。 -KM変数の場合、呼び出し先で例えばTestParamに"あいうえお"をセットしておき、Macroをwith Parameterで「TestParam」を選んで引き渡す。複数の場合「TestParam1, TestParam2」とカンマ区切りでいける模様。[[Can I create a "structure" type of variable? - Questions & Suggestions - Keyboard Maestro Discourse:https://forum.keyboardmaestro.com/t/can-i-create-a-structure-type-of-variable/3557/2]] -呼び出し先のシェルスクリプトでは、$KMVAR_パラメータ名でアクセスできる。 echo $KMVAR_TestParam -ただしシェルスクリプトの場合、リードオンリーで、値を返すため書き換えてもだめ(AppleScriptだといけるようだが)。 ***サンプル1 [#mfba317c] -呼び出し側。 #ref(m1.jpg) -呼び出され側。 -変数を使わない場合TriggerValueで参照できる。 #ref(m2.jpg) -結果 *Tips [#m2339ca8] **TextExpander代わりに使用する [#wba5dca9] -トリガーとしてTypedStringを利用する。 -Insert Text by Pastingで文字列を挿入する(Typeだと遅い)。 -実行後クリップボードが汚れるのが嫌な場合、Delete Past Clipboard アクションをパラメータ0で実行する **ChromeのURLやタイトルを取得する [#lb29a361] -%ChromeURL%や、%ChromeTitle%で取得可能。Insert Text by Pastingを使用すればテキスト編集エリアなどにペーストできる。 **Clipboardに文字列をコピーする [#c1ee23b0] -例えばスクリプトを実行するまえにClipboardに引数をコピーしたい場合がある。 -"Set Clipboard to Text"アクションを利用すれば良い(名前から受ける印象とことなり、システムクリップボードにテキストをセットするアクション)。%ChromeURL%といったキーワードも利用可能。 **メニューを利用してマクロ実行 [#m8e1e0fd] -トリガーでGlobal Macro Palette Triggerを選ぶと常に小さなアイコンが表示され、そこからマクロを実行することができる(Global Macro Palette Triggerを設定したマクロが一覧表示される)。 -アクションでShow Palette of Macroを選ぶと、指定したグリープに含まれるマクロを表示し、それらをマウスで選択できる。パレット上のマクロは一文字ずつ文字をタイプすることで絞り込まれる。 -Show Palette of Macroで表示できないグループがあったが不具合かどうかは不明。 -macro paletteに関しては[[Frequently Asked Questions [Keyboard Maestro Wiki]:https://wiki.keyboardmaestro.com/Frequently_Asked_Questions#How_do_I_get_more_than_one_macro_palette]]も参考に。 *トラブルシューティング [#wd030457] **マクロをデバッグする[#e55f8551] -通知メッセージに表示されるがそれだけでは判別できない場合、Engine.logを確認する。[[How to "see" complete error message in Notification Centre - macro failed - Questions & Suggestions - Keyboard Maestro Discourse:https://forum.keyboardmaestro.com/t/how-to-see-complete-error-message-in-notification-centre-macro-failed/5241/4]] -Help > Open Logs Folderでフォルダを開ける。以下でも可能。 open ~/Library/Logs/Keyboard\ Maestro -"[NSConcreteFileHandle writeData:]: Broken pipe"のようなメッセージが表示されている場合、スクリプトとの連携がうまくいっていないようなのでMacを再起動するとよいかも。