AHK: 選択した文字列を括弧(【】、「」、『』[]等)で挟む

先日のほんまかいで、ちょっと思いついてcodeを書いてみましたので紹介したいと思います。

何をするものかというと、無変換キーと、”[”を押すと、以下の様なメニューが表示されます。

メニューには幾つも項目がありますが、

  • 上半分程が、全角の括弧の開くと閉じるを入力後キャレットを括弧の真ん中に移動するというもの、
  • 下半分が、選択された文字列を、様々な括弧で囲むというものです。

CATツールでも、メーラーでも、何にでも利用できるというのはやっぱり良いですね。

以下は、そのコードです。

; メニューの作成
;Menu, メニューのID, Add, メニュ―のテキスト, 発動するコマンド名
Menu, kakko, Add, 【】を挿入, Command1
Menu, kakko, Add, 「」を挿入, Command2
Menu, kakko, Add, 『』を挿入, Command3
Menu, kakko, Add ;スペーサーの追加
Menu, kakko, Add, 【】で挟む, Command4
Menu, kakko, Add, 「」で挟む, Command5
Menu, kakko, Add, 『』で挟む, Command6
Menu, kakko, Add, []で挟む, Command7
Menu, kakko, Add, ()で挟む, Command8
Menu, kakko, Add, ""で挟む, Command9
return
;-----------------------------
;各メニューアイテムが選択された際の動作
Command1:
Send 【】{left 1}
return

Command2:
Send 「」{left 1}
return

Command3:
Send 『』{left 1}
return

Command4:
clipboard =
Send ^c
ClipWait
Send 【%clipboard%】
clipboard =
Return

Command5:
clipboard =
Send ^c
ClipWait
Send 「%clipboard%」
clipboard =
Return

Command6:
clipboard =
Send ^c
ClipWait
Send 『%clipboard%』
clipboard =
Return

Command7:
clipboard =
Send ^c
ClipWait
Send [%clipboard%]
clipboard =
Return

Command8:
clipboard =
Send ^c
ClipWait
Send (%clipboard%)
clipboard =
Return

Command9:
clipboard =
Send ^c
ClipWait
Send "%clipboard%"
clipboard =
Return
;-----------------------------
;メニューの表示: 無変換キー & [
vk1Dsc07B & [::Menu, kakko, Show


最後の行の”vk1Dsc07B & [::Menu, kakko, Show”がメニューを表示させるところです。
このコードの”vk1Dsc07B & [“が無変換キーと”[“のショートカットキーを表しています。

ここを変えることによって、別のキーコンビネーションに同様の機能を割り当てることができます。

“AHK: 選択した文字列を括弧(【】、「」、『』[]等)で挟む” への4件の返信

  1. 小物ですけど、けっこう便利ですよね。同様の秀丸マクロをSimplyTermsに同梱して公開しています。

    編集部分をbegingroupundo;とendgroupundo;で囲ってアンドゥ一発にできる分、私にとってはAHKより秀丸マクロのほうが便利だったりします。私自身は、CATツールは使わないしメーラーは秀丸メールで秀丸マクロがそのまま引き継がれるしで、秀丸以外の環境で文字を打つことがほとんどありませんし。

    1. Buckeyeさん、コメントありがとうございます。
      確かに、秀丸環境以外での文字を打つ機会がなければ秀丸エディタの方がいろいろ小回り効いていいっすよね。

  2. 4月のほんまかいでは、Wordでも、色々なことができるのを知ってびっくり。ありがとうございました。

    選択した文字列を括弧ではさむ、スクリプトについて教えてください。

    「このコードの”vk1Dsc07B & [“が無変換キーと”[“のショートカットキーを表しています」というのがよくわかりません。

    起動するキーを、「無変換」キーから、(テンキーでなく)上段の「3」キーに変更することはできるでしょうか。

    今使用しているのは、【】などで挟むスクリプトを、挟んだ文字列の左に、挟む前の文字列が残らないように変更したものです。

    例えば

    Command4:
    clipboard =
    Send ^c
    ClipWait
    Send 【%clipboard%】
    clipboard =
    Return

    のところは、

    Command4:
    send,^x
    Send 【】{left 1}
    send,^v
    Return

    のようにしています。

    もしも、お時間があれば、よろしくお願いいたします。

    1. Yabumotoさん、コメントありがとうございます。一つ上記のスクリプトでエラーがあったので訂正させていただきました。
      ホットキーを割り当ててるところは、
      vk1Dsc07B & [
      なのですが、HTMLの”&”が表示されていましたので、これを修正いたしました。
      キーの割り当てについては、上記スクリプトの、vk1Dsc07B & [ を好きなキー割り当てにして頂ければと思います。
      テンキーではなく、上段の3に割り当てるのであれば、
      最終行の
      vk1Dsc07B & [::Menu, kakko, Show
      を、
      3::Menu, kakko, Show
      に変更すれば良いかと思います(但し、数字の3が打てなくなるのでCtrlキーなどと組み合わせるのがいいかと思います)。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です