2010/09/16

Vistaの「プログラムから開く」で、どっちがGUI版Vimか分からなくなった

なんだか説明するのが面倒なのですが、Explorerでファイルを右クリックすると表示されるメニューの中に「プログラムから開く」というのがあります。

これが、下のような状態になってしまい、GUI版Vim (gvim.exe)ともう片方のコンソール(CUI)版Vim (vim.exe)のどちらが、どっちなのか分からなくなってしまいました。

違うプログラムが同じ名前で表示されているメニュー

今回は最終的に、下の状態にもっていくというお話しです。

gvim.exeのみが表示されているメニュー

そもそもの問題を避けるために

Vistaでしか検証していませんが、次のようなルールを守れば、問題ないのかなと思われます。

  • 本家日本語版(kaoriya版vim)のどちらか片方だけを使う
  • 本家を使うなら「プログラムを開く」の近くに表示される「Vimで編集する」を選択する
  • (インストーラを使わない場合は特に)Vimを起動したら配置場所を変更しない
  • CUI版とGUI版のどちらかだけを使い続ける

普通は C:\Program Files\Vim\ にインストールしたら、その場所を変更すればまずいだろう、という事は想像がつくかもしれません。 けれどもインストーラの付属しないバイナリプログラムを単体でダウンロードした場合などでも、一度プログラムを実行するとその場所がレジストリに記録されてしまいます。

実行形式のプログラムは移動しないのがWindowsの作法という事なのかもしれません。

問題は以前にgvim.exeを起動した事があって、しばらく経ってから別の場所にダウンロードして起動した場合、どうやっても「プログラムを開く」から選択できなくなる可能性がありそうだという点でしょうか。

問題1 - gvim.exeファイルを移動したら「プログラムから開く」で選択できなくなった

一度「プログラムを開く」でgvim.exeを選択してから、別の場所にgvim.exeを移すと当然のように「プログラムを開く」メニューからは消えてしまいます。

そこで改めて「プログラムを開く」で選択するのですが、どういうわけかアイコンは追加されません。

結局のところ手動で regedit を起動し、次のように \HKEY_CURRENT_USER\Software\Classes\Applications\gvim.exe\shell\open\command を正しいpathに修正する必要がありました。 ()

正しいpathに手動で書き換える様子

反対に不正なpathに書き換えてしまえば、選択肢から消すことも可能です。 最終的にCUI版Vimのpathを正しくない場所を指すように変更してしまいました。

問題2 - 「プログラムから開く」にCUI版Vimが同じ名前で表示されてしまい、GUI版Vim

これは最初の図と同じ状態です。 ここまでの方法を踏まえると、既に問題は解決しているのですが、一応名前を"Vi Improved - A Text Editor"から Vi Improved - A GUI Text Editor に変更したいと思います。

これもレジストリで一箇所を変更したのですが、MuiCacheなので何かの表紙に変更されてしまうかもしれません。

バイナリエディタあたりでプログラムに登録されている名前を直接変更する方が確実そうですが、とりあえずテンポラリの方法として使えそうです。

変更する場所は \HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache で、プログラムに対応するテキストを書き換えます。

Vimの表示名を変更している様子

2010/09/20追記: 結局のところ変更したMuiCacheのレジストリエントリは再起動後に元に戻ってしまいました。 CUI版vimは一覧に表示されないようになっているので、特に問題はありませんが、恒久的にはバイナリエディタを使うしかないのかなぁ、と思っているところです。

まとめ

ここでの事はVistaだけでの事なので、Windows7などでは通用しないかもしれません。 どうせ買うならIISのテストも兼ねて、Windows7 Professional以上のパッケージ版をVMWareで動かしたいところですが、3万円以上の出費は痛過ぎるので、当分無理でしょうね。

Windowsには詳しくないので間違った事があれば優しく指摘して頂ければ幸いです。

0 件のコメント: