スポンサーリンク
2013年10月17日
PHPStormでTextExpanderを使っていると、たまに意図していないテキストがペーストされることがありました。同種のTypeIt4MeやClipMenuのようなクリップボード管理系のアプリも同じ現象が起こります。
以前調べたときは、JavaVMの問題だからどうにもならないというコメントがあったので、それ以上調べることはありませんでした。
しかし、別件でTextExpanderのことを調べていたら、たまたま関係しそうなサイトを見つけました。前回もう少し調べておけばと後悔しましたが、とりあえず解決法らしきものが見つかったのでよしとしましょう。
原因は、PHPStormのクリップボードマネージャ(履歴管理)であり、それとバッティングしているようです。そもそも、PHPStormにそんな機能があることを初めて知りました。多機能すぎて使いこなせてないですね。
確かにありました。Paste from History…を実行すると、コピーまたはカットした履歴から選べます。
これまでは、うまく動作しないとき、適当にコピー(Cmd+c)を実行すれば、しばらくは問題がなかったので、ちょっとストレスを感じつつも無視していました。結局、あまり深く追求することもなかったため、不具合が生じる正確なタイミングはわかりませんでした。
他の方法(その弐)を見つけたので、これを試すのは後回しにしましたが、せっかくなので残しておきます。
設定ファイルidea.vmoptions
にidea.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だけで探すとダメですね。 ちょっとした・・・かなりストレスだったので、これで直ればいいのですが、ダメなら最初の方法を試そうかと思います。 ただ、どちらの方法も同じ事を意味するような気がしますが、どうなのでしょうか。