環境
Mac: OS X Yosemite 10.10.5
Android Studio: 1.4 (141.2288178)
JRE: 1.7.0_79-b15
JVM: Java HotSpot(TM) 64-bit Server VM by Oracle Cooperation
現象
自分は Android Studio のキーバインディングを Emacs 風にしているのだが、時々、⌥ + (何かのキー)
を入力したときに、ルート記号のような特殊文字が入力されるだけでバインドされたコマンドが実行できないことがある(キーバインドは正しく設定されている)。
たとえば、 ⌥ + V
で PageUp をしたいのに、√
が入力されたり、 ⌥ + ⇧ + 5
(つまり Alt + %
) で置換をしたいのに、 fi
が入力される。これは Emacs キーバインディングに慣れた自分としてはかなりストレスが溜まる。しかも、別のマシンでは再現しないこともあるので何らかの解決方法がありそう。
原因
そもそも、オプションキーは Mac 上で特殊記号の入力に使われており、そちらが優先されているものと思われる。
(Option key - Wikipedia, the free encyclopediaより)
以前、IntelliJ プラグイン勉強会 でサムライズムの方にこの問題について聞いたところ、JRE のバージョン依存であるという話を伺った(Java のバグ?)。
解決方法
結論から言うと、Java 8 をインストールして Android Studio が Java 8 を使うようにすれば解決する。
以下、具体的な手順。
- Java 8 を Oracle のページからダウンロードしてインストールする
- Android Studio を閉じる
-
/Applications/Android Studio.app/Contents/Info.plist
を確認する - もし、
JVMVersion
のところに、以下のように1.6*,
という記述があったら、その部分を削除して1.6*,1.7+
⇨1.7+
のようにする
<key>JVMVersion</key>
<string>1.6*,1.7+</string>`
続いて、
5. Android Studio を起動する
6. メニューの Android Studio
> About Android Studio
を開き、使われている JRE のバージョンが 1.8 になっていることを確認する
補足
具体的にどのバージョンの JRE で上記の現象が直っている(あるいは再現する)のかは分かっていない。とりあえず最新版の Java 8 で治っているようなので、時間あったら調べます。