スポンサーリンク

PHPStormとTextExpanderとの相性が悪いので対処方法を探してみました

PHPStormでTextExpanderを使っていると、たまに意図していないテキストがペーストされることがありました。同種のTypeIt4MeやClipMenuのようなクリップボード管理系のアプリも同じ現象が起こります。

原因

以前調べたときは、JavaVMの問題だからどうにもならないというコメントがあったので、それ以上調べることはありませんでした。

しかし、別件でTextExpanderのことを調べていたら、たまたま関係しそうなサイトを見つけました。前回もう少し調べておけばと後悔しましたが、とりあえず解決法らしきものが見つかったのでよしとしましょう。

原因は、PHPStormのクリップボードマネージャ(履歴管理)であり、それとバッティングしているようです。そもそも、PHPStormにそんな機能があることを初めて知りました。多機能すぎて使いこなせてないですね。

確かにありました。Paste from History…を実行すると、コピーまたはカットした履歴から選べます。

これまでのその場しのぎ

これまでは、うまく動作しないとき、適当にコピー(Cmd+c)を実行すれば、しばらくは問題がなかったので、ちょっとストレスを感じつつも無視していました。結局、あまり深く追求することもなかったため、不具合が生じる正確なタイミングはわかりませんでした。

対処方法 – その壱

他の方法(その弐)を見つけたので、これを試すのは後回しにしましたが、せっかくなので残しておきます。

設定ファイルidea.vmoptionsidea.use.alt.clipboard.sync=trueを追加すれば良いとのことです。

idea.vmoptionsとは何ぞやと思い、調べてみるとJavaVMのメモリ設定などができるみたいです。

The file /Applications/PhpStorm.app/bin/idea.vmoptions should be copied to

~/Library/Preferences/WebIdeXX/idea.vmoptions

For example, to increase PhpStorm heap size, you should copy the original .vmoptions file from /Applications/PhpStorm.app/bin/idea.vmoptions to ~/Library/Preferences/WebIdeXX/idea.vmoptions, then modify the -Xmx setting.

環境をPHPStorm6とすると、デフォルトでは、~/Library/Preferences/WebIde60/idea.vmoptionsは存在しないので、/Applications/PhpStorm.app/bin/idea.vmoptionsをコピーして設定します。

.app内のファイルを編集してもよさそうですが、アップデート時に忘れそうなのでコピーして編集するのがよさそうです。

対処方法 – その弐

この方法で設定変更するとPHPStormが不安定になりました。コピーか何かのタイミングで応答なしになります。この方法はヤメて、方法その壱を試しています。今のところは不安定になることはありませんが、TextExpanderが正常に動作しているかはわかりません。

その壱の方法が気になりidea.use.alt.clipboard.syncで検索しましたが、あまり引っかかりません。この方法でいいのかと、若干不安になりました。すると、検索結果の中に以下の記事を見つけましあた。本家のコミュニティサイトですね。なんで前回引っかからなかったんだろう・・・

タイトルもズバリですが、ズバリの解決法が書いてありました。

Help – FInd Action, type Registry, press Enter.

Find ide.mac.useNativeClipboard, enable the checkbox. See if it helps.

メニューのHelp > Find Actionを実行して、Registryと入力します。Registryを探しエンターまたはクリックします。Registryウィンドウが表示されるので、 ide.mac.useNativeClipboardにチェックを入れます。必要かはわかりませんが、とりあえず再起動させます。

ちょっと説明が抜けていて、include non-menu actionsにチェックを入れないとRegistryが候補に出てきません。

この設定によって、デフォルトのクリップボード履歴機能が動かなくなるわけではなさそうです。ただ、デフォルトでオフということは、どこかに影響があるのでしょうか。

おわりに

IntelliJ、WebStorm、PHPStormなどで情報が分散するので、PHPStormだけで探すとダメですね。 ちょっとした・・・かなりストレスだったので、これで直ればいいのですが、ダメなら最初の方法を試そうかと思います。 ただ、どちらの方法も同じ事を意味するような気がしますが、どうなのでしょうか。

References