[PhraseExpress]つまづきやすいポイントとその対処法 – 発動しない、余分に削除される、途中で止まる、文字化けする等

PhraseExpressTrouble blog

島根の司法書士、坂根(@sakane0958)です。

私もPhraseExpressを使えるようになるまでになかなか苦労したクチです。
その過程で克服したトラブル事例とその対処法を紹介してみます。
これでPhraseExpressユーザが増えることを願って。

  1. トラブルその1:思った条件で発動しない
    1. 発動しない原因1:PhraseExpressのウィンドウが開いている
    2. 発動しない原因2:Prefix(接頭辞)が不適切
    3. 発動しない原因3:Postfix(接尾語)が不適切
  2. トラブルその2:手前の文字まで削除される
    1. 原因:Backspace問題
      1. Hotstring
        また、「kita-」のような母音を含むホットストリングでは、「きたー」のように未確定文字列の文字数が減ってしまうため、BackSpaceによる自動削除で余分に削除が行われてしまう。 例えば、IMEで「 …
        ”また、「kita-」のような母音を含むホットストリングでは、「きたー」のように未確定文字列の文字数が減ってしまうため、BackSpaceによる自動削除で余分に削除が行われてしまう。
        例えば、IMEで「おにぎり」を確定して、次に「きたー」を入力した場合、2文字余計に削除されて「おにキタ━(゚∀゚)━!!」となってしまう。
        これを回避するには、「kt-」のように母音を含まないホットストリングに割り当てればよい。
        また、IMEの設定によっては、「Kita-」のようにShiftを押しながら英字を入力すると、アルファベットの状態で入力される。
        この場合、タイプした文字数とBackSpaceで削除すべき文字数は一致するはずである。”


      2. BackSpace問題への対策
        1. 対策1:子音のみでAutotextを構成する
        2. 対策2:母音を使う場合、子音と組み合わせない
        3. 対策3:Shiftを押しながらAutotextの入力を始めるようにする
  3. トラブルその3:ガチャる
    1. 原因:Delays不足
  4. トラブルその4:発動するけど文字列が未確定状態
    1. ATOK相性問題への対策
      1. 前提:日本語入力OFFならPhraseExpressが正しく動作する
      2. PhraseExpressに日本語入力を切り替えさせよう:発動時に日本語入力をOFFにさせ、終了時にONに戻させる
        1. ATOKの設定方法
        2. スニペットの登録方法
        3. 注意点
  5. トラブルその5:文字化けする
  6. 編集後記
    1. 関連記事
      1. [PhraseExpress]複数のPE記事を書いているブロガーさんとその記事の紹介
      2. [PhraseExpress]発動しない時に確認すべきこと(prefix問題) – 流れるような一日を
      3. [PhraseExpress]日本語IMEとBackspace問題 – 流れるような一日を
      4. [PhraseExpress]発動するけど何か変?という時にはDelaysを増やしてみる – 流れるような一日を
      5. [PhraseExpress]英数字が全角未確定状態になる問題への対処方法 – PhraseExpressとATOKの相性問題 – 流れるような一日を

トラブルその1:思った条件で発動しない

ここでつまづいてPhraseExpressを断念する人も多いのではないでしょうか。いくつか原因が考えられます。

発動しない原因1:PhraseExpressのウィンドウが開いている

PhraseExpressのウィンドウが開いている状態では、どのようなフレーズも発動しません。
このような仕様になっているのは、おそらくPhraseExpress内でフレーズを編集している際にフレーズがじゃんじゃん発動すると、編集内容がぐちゃぐちゃになってしまうからだろうと思います。

よって、フレーズを登録したり編集したりした後のテストは、PhraseExpressのウィンドウを閉じてから行う必要があります。
これはPhraseExpressを使いこなせるようになってからも、うっかり忘れてしまって「あれ、動かないぞ?」ということがちょくちょくあります。
知ってさえいれば、どうということはありませんが、知らないとハマる知識です。

発動しない原因2:Prefix(接頭辞)が不適切

改行や半角スペースの後に入力したAutotextは認識されるが、文中で入力した時には認識されない場合、Prefixの設定を疑いましょう。
この「Prefix」は初期状態の「Easyモード」では表示されていません。
Expertモードに変更すると出てくる、フレーズごとの設定項目の一つです。

ScreenClip

Prefixは初期状態では「Default」となっていますが、このままだと半角スペースや改行等の後に入力したAutotextしか認識対象になりません。

ScreenClip
「Any」にしておくのがオススメです。

発動しない原因3:Postfix(接尾語)が不適切

Autotextを入力後、改行や半角スペースを入力すると発動するが、続けて文章を打つと発動しない場合、Postfixが怪しいです。

Postfixも初期状態では「Default」となっていると思いますが、これを「None」(EasyモードであればExecute immediately)にしておくのがオススメです。

ScreenClip

トラブルその2:手前の文字まで削除される

原因:Backspace問題

この問題は、日本語入力OFFで使う場合には影響ありません。
日本語入力ONの状態でPhraseExpressを使いたい場合に問題になってきます。

快適に使うにはひと工夫が必要です。
問題の詳細は、こちらのページに詳しいです(PhraseExpressとは別のツールの解説ページです)。

Hotstring
また、「kita-」のような母音を含むホットストリングでは、「きたー」のように未確定文字列の文字数が減ってしまうため、BackSpaceによる自動削除で余分に削除が行われてしまう。 例えば、IMEで「 …
”また、「kita-」のような母音を含むホットストリングでは、「きたー」のように未確定文字列の文字数が減ってしまうため、BackSpaceによる自動削除で余分に削除が行われてしまう。
例えば、IMEで「おにぎり」を確定して、次に「きたー」を入力した場合、2文字余計に削除されて「おにキタ━(゚∀゚)━!!」となってしまう。
これを回避するには、「kt-」のように母音を含まないホットストリングに割り当てればよい。
また、IMEの設定によっては、「Kita-」のようにShiftを押しながら英字を入力すると、アルファベットの状態で入力される。
この場合、タイプした文字数とBackSpaceで削除すべき文字数は一致するはずである。”


BackSpace問題への対策

入力した文字数(打鍵数)と、削除される文字数(BackSpaceキーで消される文字数)を一致させることで解決できます。

対策1:子音のみでAutotextを構成する

例:sakanedesu;でなくsknds;にする。

対策2:母音を使う場合、子音と組み合わせない

例:akasatana;でなくakstn;にする。

子音と組み合わせない「あ行」は1打鍵1文字だからです。

対策3:Shiftを押しながらAutotextの入力を始めるようにする

例:kita-;でなくKita-;にする(Kの入力開始時にShiftを押しながら)

実はこの対策、私は今まで実践していなかったので試したことがないのですが、良さそうな対策です。

MS-IMEでもそうだったと思いますが、ATOKでもShiftを押しながらアルファベットを入力するとローマ字かな入力でなく、アルファベットが入力されます。
これを利用すればタイプした文字数とBackspaceで削除すべき文字数が一致する、というわけ。
これは直感的で良さそうです。

トラブルその3:ガチャる

説明が難しい現象ですが、特にボリュームのあるフレーズで問題になります。
途中で止まったり、おかしな動作になります。
うまくいくこともあれば、止まることもある。止まるポイントが一定せず、バラつく。

他のトラブルを解消しても動作がおかしい場合や、複数の原因が絡み合っていると思われる場合には、以下に紹介する対策をとってみましょう。

原因:Delays不足

PhraseExpressの要求する動作スピードにPCのスペックが追いついていない場合、思ったような動きをしてくれないことが増えます。

解決策としては、設定からpaste delaysを増やすことが解決に繋がります。

PhraseExpress v10 Documentation
If text is inserted only partially or broken, then your computer perhaps is slower than PhraseExpres …
”If text is inserted only partially or broken, then your computer perhaps is slower than PhraseExpress trying to insert the text. In such case, increase the paste delays”

ただ、paste delaysを増やすとPhraseExpressの実行完了までの時間がかかりますので、安定性と時間とのトレードオフになります。
適切なポイントを探ってみて下さい。

ScreenClip

ちなみに私のPCではpaste dalaysは100msに設定されています。
目安にしてみてください。

トラブルその4:発動するけど文字列が未確定状態

経験則からの予想ですが、これはATOKユーザーに特有の症状ではないかと予想しています。
複数のATOKユーザーから「ATOKではPhraseExpressは使えない」という言及があります。
ATOKとPhraseExpressの相性はイマイチのようです。

[PhraseExpress]一瞬で10万文字でも!「どこでも瞬間テンプレート呼び出しツール」 | yossense
”ただ、このPhraseExpressですが、MS-IMEとかATOKでは入力がうまくいきません。(中略)1年ほど前にATOKに直接電話で問い合わせて聞いたら対応していないとの回答でした。その後改善されているかどうかは分かりません。”

【windows】ブログ作成環境を作りました。 | jun200 雑記録
”phraseexpressの問題
残念なんですがatokだとうまく動かないんですよね。Htmlのタグを登録していてもatok環境で使うとなぜか全角で帰ってくるんですよね。これは・・・。msimeを使えば問題ないんだけど、なんかね・・・。文字を打つことをメインにしているのにatokが使えないなんてね。”

しかし、日本語入力を快適にしようと思ったら、ATOKもPhraseExpressも使いたいですよね。
私は悪あがきに挑戦しました。

ATOK相性問題への対策

前提:日本語入力OFFならPhraseExpressが正しく動作する

前提として、私の環境では日本語入力OFFだとPhraseExpressが正しく動作します。
つまり、PhraseExpressが発動する前に「半角/全角」キーなどで日本語入力をOFFにしてやれば、PhraseExpressを使うこと自体はできる。

ただ、いちいち日本語入力のON/OFFしなきゃいけないなんて、PhraseExpressの便利さも半減ですよね。

PhraseExpressに日本語入力を切り替えさせよう:発動時に日本語入力をOFFにさせ、終了時にONに戻させる

PhraseExpressには、実に様々な操作をさせることができます。ショートカットキーを押させることなどお茶の子さいさい。
そこで、ATOKのキー設定で、IMEのON、OFFを普段使わないであろうキーに設定し、それをPhraseExpress発動時と終了時に押させる、という方法を考えました。

挑戦してみたところ、この試みはうまくいきました。
「普段使わないであろうキー」を探すのに多少の手間がかかるかもしれませんし、設定は多少面倒くさいかもしれません。
しかし、それだけの価値のある環境を手に入れた、と私は今でも思っています。

ATOKの設定方法

私はCtrl+Shift+F3を日本語入力オフ、 Ctrl+Shift+F4を日本語入力オンに設定しました。

ScreenClip

この画面への行き方は、下記のとおり。

「プロパティ(環境設定)」→「キー・ローマ字・色」タブ→「キーカスタマイズ」ボタン

スニペットの登録方法

ここで一工夫すると、便利になります。

まず、PhraseExpressではスニペットを入れ子にすることができるので、「日本語入力OFFのスニペット」、「日本語入力ONのスニペット」を作っておきます。
ここで一度作っておけば、これ以降スニペットを作る際に、それを呼び出せば済みます。

ScreenClip

ScreenClip

それぞれIMEOFFが{#SHIFT {#CTRL {#F3}}}、
IMEONが{#SHIFT {#CTRL {#F4}}}です。

他のスニペットから呼び出す際には、{#insert IMEOFF}又は{#insert IMEON}のように指定します。
ちなみに私の例ではDescriptionもAutotextも同じIMEOFF、IMEONの文字列を使っているのでわかりづらいですが、指定する際にキーになっているのはAutotextの方です。
Descriptionの方は、自分の覚えやすいように変えてもらって大丈夫です。

実際の使用例はこのような形になります。

ScreenClip

ph;と打つと、IMEOFFスニペットからShift+Ctrl+F3が実行され、日本語入力がOFFになります。
その後、PhraseExpressという文字列が挿入され、IMEONスニペットからShift+Ctrl+F4で日本語入力ONに戻ります。

注意点

ここで紹介した設定は、日本語入力ONの状態からPhraseExpressを使い、また日本語入力ONに戻る前提の造りになっています。
日本語入力OFFの状態からでもスニペットは発動しますが、発動後日本語入力ONになります。
作業内容によっては「日本語入力OFFで作業してたのに!」とイラッとするかもしれません。

私の場合は、それで不便を感じることはありませんが、念のため申し添えておきます。

トラブルその5:文字化けする

症状:正しく登録したはずなのに、一部が文字化けしたりする。

PhraseExpressのアップデート後にこの症状が出ることがあります。
慌てず騒がず、下記のjMatsuzaki氏の記事の対応を取れば大丈夫です。

PhraseExpressのVersion10で日本語が文字化けして使いものにならないバグを回避する方法 | jMatsuzaki
この情報を見つけたとき「おお、神情報!」とつぶやいたのを思い出します。

編集後記

この記事は、昔PhraseExpressに挑戦してくれた人が再挑戦してくれること、PhraseExpressに挑戦してみたけれども、あきらめそうになっている人が、この記事を読んで前に進んでくれることを願って書きました。

願わくば、日本語のPhraseExpress情報がもっともっと世に出てきますように。

関連記事

[PhraseExpress]複数のPE記事を書いているブロガーさんとその記事の紹介

PhraseExpress記事を2つ以上書いているブロガーさんをピックアップしてみました。PhraseExpressはブログととても親和性の高いツールです。

PhraseExpressには日本語入力の辞書登録では実現できない機能がたくさんあります。
いろんなブロガーさんの「こんなスニペットどう?」って事例を見てみたいです。

[PhraseExpress]発動しない時に確認すべきこと(prefix問題) – 流れるような一日を

私がPrefix問題につまづき、どういう話なのか理解して乗り越えた時の記事です。

[PhraseExpress]日本語IMEとBackspace問題 – 流れるような一日を

同じく私がBackspace問題を理解した時の記事です。

[PhraseExpress]発動するけど何か変?という時にはDelaysを増やしてみる – 流れるような一日を

Delaysを増やしてみたところ、ボリューム大きめのスニペットが動くようになったことを発見した時の記事です。

[PhraseExpress]英数字が全角未確定状態になる問題への対処方法 – PhraseExpressとATOKの相性問題 – 流れるような一日を

ATOKとPhraseExpressの相性問題について、現象の説明や、ショートカットキー探りの試行錯誤の過程も書いています。

コメント

タイトルとURLをコピーしました