Illustratorの過去のバージョンでは,確定済みの文字を選択してかなキーを素早く2回打つと再変換できました(Macの標準文字入力機能の場合)。
しかしいつの間にか(おそらくCS6から)それができなくなり,Adobe社も「現時点では,この問題を解決する方法はありません」とのコメントを出しています。
ただこれはCS6の話なので,後のバージョンでは直っているだろうと思っていたのですが,CCを使ってみたらまだそのままでしたね。
そこで今回は,AppleScriptとKarabinerの組み合わせで,かなキー2回打ちの再変換を使えるようにします。なお,この記事は以下の条件にあてはまる方が対象です。
- Macユーザ
- Illustrator CS6以降を使っている
- 標準文字入力機能(IME,旧ことえり)やGoogle 日本語入力など,ATOK以外の文字入力機能を使っている
ATOKの場合は特別なことをしなくてもショートカットによる再変換ができるので,何も工夫はいりません。
準備
Karabinerを使えるようにしておいてください。Karabinerは,かなキー2回打ちに対応した数少ないソフトの1つです。ほか,有償ですがKeyboard Maestroも対応しています。
それ以外のソフトでもショートカットキーを割り当てることはできますが,コマンド+何かのキーのような普通の組み合わせのみになります。
Karabinerの話は過去の記事【解決】Illustrator CS6でもF7でカタカナ変換したい!にもありますので参考にしてください。
今回やることの概要
Karabinerを使って,Illustratorが前面にあるとき,かなキー2回打ちで再変換スクリプトを実行するよう設定します。
残念ながらスクリプトに関しては,配ったものをそのまま実行させることができないので,自分の環境に合わせて文字を入力してもらうことになります。
では設定に入りましょう。
設定手順
スクリプトと設定XMLのダウンロード
再変換スクリプトとKarabinerの設定ファイルprivate.xmlをすでに用意してありますので,以下からダウンロードしてください。
sttk3-reconvert.zip
スクリプトの移動とそのパスの取得
スクリプトを頻繁に名前や位置が変わったりしないフォルダに移動してください。それらが変わると使えなくなってしまうので。
そしてそのパスを取得します。パスとはURLなどでおなじみ,ファイルの位置を示す以下のような文字のことです。
/Users/sttk3/Desktop/reconvert.scpt
パスは,例えばスクリプトエディタ(ユーティリティフォルダにある。OSのバージョンによりAppleScriptエディタとも呼ぶ)を起動し,開いたウィンドウにスクリプトファイルをドロップすると出てきます。
設定XMLの編集
ダウンロードしたprivate.xmlの <![CDATA[ osascript '/Users/sttk3/Documents/reconvert.scpt' ]]> の部分に注目してください。
そして ' で囲まれた部分を先ほど取得したパスで差し替えて保存します。 ' は消さないよう注意してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<?xml version="1.0"?> <root> <appdef> <appname>Ai</appname> <equal>com.adobe.illustrator</equal> </appdef> <item> <name>Convert Japanese</name> <item> <vkopenurldef> <name>KeyCode::VK_OPEN_URL_SHELL.osascript</name> <url type="shell"> <![CDATA[ osascript '/Users/sttk3/Documents/reconvert.scpt' ]]> </url> </vkopenurldef> <name>Reconvert on Illustrator</name> <appendix>Reconvert by Kana Key</appendix> <identifier>com.sttk3.reconvert</identifier> <only>Ai</only> <autogen> --DoublePressModifier-- KeyCode::JIS_KANA, KeyCode::JIS_KANA, KeyCode::VK_OPEN_URL_SHELL.osascript </autogen> </item> </item> </root> |
設定XMLの差し替え
現状でKarabinerが使っているprivate.xmlのフォルダを開きます。Karabinerの環境設定を開いて,Misc & Uninstallの部分をクリックしてください。その中のOpen private.xmlというボタンを押すと開けます。
普段Karabinerを使っていない方はそこにあるprivate.xmlを,ダウンロード・編集したほうのXMLファイルで上書きしてください。すでに導入して使っている方は,自分で作った設定を消さないよう,必要なところのみそこのprivate.xmlにコピー&ペーストして保存します。
【解決】Illustrator CS6でもF7でカタカナ変換したい! でprivate.xmlを変えた方は,そのprivate.xmlの最後の2行
</item>
</root>
を選択し,先ほどダウンロード・編集したXMLファイルのハイライト行にあたる部分をコピー&ペーストして差し替えてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<?xml version="1.0"?> <root> <appdef> <appname>Ai</appname> <equal>com.adobe.illustrator</equal> </appdef> <item> <name>Convert Japanese</name> <item> <vkopenurldef> <name>KeyCode::VK_OPEN_URL_SHELL.osascript</name> <url type="shell"> <![CDATA[ osascript '/Users/sttk3/Documents/reconvert.scpt' ]]> </url> </vkopenurldef> <name>Reconvert on Illustrator</name> <appendix>Reconvert by Kana Key</appendix> <identifier>com.sttk3.reconvert</identifier> <only>Ai</only> <autogen> --DoublePressModifier-- KeyCode::JIS_KANA, KeyCode::JIS_KANA, KeyCode::VK_OPEN_URL_SHELL.osascript </autogen> </item> </item> </root> |
ショートカットの有効化
Karabiner環境設定のChange Keyをクリックしてください。その画面の右上のほう,Misc & Uninstallの下あたりにあるReload XMLボタンを押すと,先ほどのXMLが読み込まれます。
▶︎Convert Japaneseを展開し,Reconvert on Illustrator のチェックボックスにチェックを入れてください。これで使えるようになりました。
ちなみにKeyboard Maestroでは
以下のような設定で同じことができました。スクリプトのパスはKarabinerと同様自分の環境に合わせて入力してください。
ただこれを作ったら,かなキー1回打ちで日本語入力モードにできなくなってしまいました。なのでその機能も下のように改めて作ります。
使用方法
Illustratorで再変換したいテキストを選択し,かなキーを素早く2回打ちます。
そうするとダイアログが開き,そこで変換が実行されます。タイミングによっては自動で実行されないかもしれませんが,ダイアログ上なら普通に再変換できるので改めてかなキーを2回打ってください。
意味もなく連打したくなります!
これでまた少し仕事が速くなりました。今日もさっさと仕事を切り上げて好きなことをしましょう!
AppleScriptコードはこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
property target_engine : "#targetengine 'com.sttk3.reconvert'" & return on run tell application "Adobe Illustrator" -- 書類が開かれていなければ終了 if not (exists document 1) then return -- 選択しているテキストを取得。できなければ終了 set sel to selection of document 1 if class of sel is not text then return set old_str to contents of sel -- このスクリプトが出すダイアログがすでにあったら終了 set script_arg to "isBusy" as text set com to target_engine & "var " & script_arg & " ; " & script_arg & " ;" if ((do javascript com) is "true") then return -- ダイアログを出して文字を変換・置換し,文字を選択し直す部分。 -- 処理の終了を待たずに次に進むため,下の再変換がすぐ実行される activate ignoring application responses set com to target_engine & "var " & script_arg & " = true ; try { var newStr = prompt('文字編集', " & quoted form of old_str & ") ; if(newStr == null) {throw new Error ;} var textRangeObj = app.selection ; app.selection.contents = newStr ; textRangeObj.length = newStr.length ; app.selection = textRangeObj ; } finally { " & script_arg & " = false ; }" do javascript com end ignoring end tell -- 再変換のショートカットを実行する tell application "System Events" tell application process "Adobe Illustrator" -- ひらがなモードに変更 key code 104 -- 早すぎると反応しないので,少し遅らせて再変換実行 delay 0.3 keystroke "r" using {control down, shift down} end tell end tell end run |
このサイトで配布しているスクリプトやその他のファイルを,無断で転載・配布・販売することを禁じます。
それらの使用により生じたあらゆる損害について,私どもは責任を負いません。
スクリプトやファイルのダウンロードを行った時点で,上記の規定に同意したとみなします。