ラクスルアナンダ

楽して自由になりたいライフハックと仕事ハック

一気に引用記号をつける

メールに引用記号を付けながら、返信することがありますよね。
たとえば、

  あれこれ
  これそれ
  それあれ

 

みたいな文章を引用すると、

>   あれこれ
>   これそれ
>   それあれ


ってやるやつです。これって普段どうやって挿入してますか?

 

まあ、1行や2行なら、引用元からコピペして、あとで、 ">" を手で追加しても、まあ大したことはありませんが、20行もやると嫌になります。

 

プログラムを書いているときにも、複数行をまとめてコメントアウトしたり。

テキストエディタならたいていはそういう機能があって簡単なのですが、OutlookExcel などのほとんどのソフトにはそういう機能は実装されてません。結構手間だったりします。

 

 

■行頭記号をつける機能を CTRL+SHIFT+V に割り当てる

ということで、本日は引用記号を付けながら貼り付けを AutoHotKey で実装してみます。といっても、正規表現で置き換えをするだけなんですけど。

 

▼━━━━━━━━━━━━━━━━━━━━━━━━━━━━▼
^+v::                   ; CTRL+SHIFT+V 引用付き貼り付け
    StrRefMsg := "> " . RegExReplace(Clipboard, "\n", "> ")
    Clipboard = %StrRefMsg% 
    Send, ^v
    return

^!v::                   ; CTRL+ALT+V 行頭文字挿入
    Inputbox, str, "選択範囲行頭文字挿入"
    StrRefMsg := str . RegExReplace(Clipboard, "\n", str)
    Clipboard = %StrRefMsg% 
    Send, ^v
    Return
▲━━━━━━━━━━━━━━━━━━━━━━━━━━━━▲

はい。できあがりです。

 

CTRL+SHIFT+V で現在のクリップボードの内容に ">" をつけて貼り付けをします。

 

CTRL+ALT+V は最初にダイアログボックスを開いて、行頭記号を聞いてくるので、挿入したい文字を入力してやれば、なんでも可能。

 

■ちょっと関数の説明(RegExReplace関数)

正規表現の置換で、 "\n" ( 改行記号 ) を特定の文字に置き換えているので、多分正しくは、

 

   "( 改行 )( 置き換えたい文字列 )"   ⇒  "`n" . str

 

にしないと改行が消えちゃいそうな気がしますが、どういうわけか、AutoHotKey では、改行が消えなくて str だけでうまくいきます。

 

ココらへんは将来、仕様が変更されるかもしれません。

 

ちなみに、 RegExpReplace は言明や文字クラスも使えます。POSIX は使えないのですが、 POSIX もどき (AutoHotKey ローカル)は使えるので、使い勝手は結構いいです。

 

まあ、私としては perl くらい強力であってくれればもっと嬉しいのですけど、実用上はそれほど問題がない。

一般的な正規表現と互換性がないところが、ちょっとデバッグなんかが面倒なんですけどね。