2010年9月30日木曜日

Autohotkeyで句読点置換,改行除去

このエントリーをはてなブックマークに追加
普段句読点として「,.」を使っている人がいると思いますが,「、。」で文字を使用する場合はタイプし終えてから,置換を「,」=>「、」と「.」=>「。」で2回行う必要があります.

そこで,Autohotkeyを使用して,この作業を簡単に行うスクリプトを書いてみました.
ここではF12キーを押すと,文字を全選択し=>クリップボードにコピー=>どちら方向に置換するか判断=>置換=>クリップボードから貼り付けという作業をしています.

どちら方向に置換するかの判断には,「,」がテキスト中に出てきたら「,.」=>「、。」としています.「.」もしくは両方で判断してもよいかと思います.

ついでに,Shiftを押しながらF12で,改行を除去ようにしてあります.

; Shift+F12: 改行を除去 abc \r\n def => abcdef
; F12: 「、。」 <=> 「,.」

*F12::
 GetKeyState, shiftFg, Shift ; Shiftが押されているか?
 Send, ^a^c   ; テキストをクリップボードにコピー
 str := clipboard
 if shiftFg = D   ; Shift押している場合は改行を消す
 {
  StringReplace, str, str, `r`n, , All
 }
 else
 {
  StringGetPos, pos, str, , ; 全角コンマの位置を検索
  if pos >= 0
  {
   StringReplace, str, str, ,, 、, ALL
   StringReplace, str, str, ., 。, ALL
  }
  else
  {
   StringReplace, str, str, 、, ,, ALL
   StringReplace, str, str, 。, ., ALL
  }
 }
 clipboard := str
 Send, ^v
return