msys2、emacs(x64) 再インストール

msys2インストール

MSYS2 Wikiにて、msys2-x86_64-20150512.exe を取得し、インストールを実行します。

更新
  1. シェル(C:/MSYS64/mingw64_shell.bat)を起動します。
  2. pacman -Sy
  3. pacman --needed -S bash pacman pacman-mirrors msys2-runtime
    • いきなりpacman -Suすると、子プロセスのfork()に失敗するので、核となるパッケージを先に更新します。MSYS2のDLLはfork()の実装のために、全プログラムで同一アドレス空間を共有しているからです(と書いてあるような...)。
  4. 一旦シェルを終了し、再度シェルを起動します。
    • 前段の更新したパッケージが使用中となるので、一旦シェルを終了させる必要があります(と書いてあるような...)。
  5. pacman -Su
    • 残りの全パッケージの更新を行います。

あとは、お好きなパッケージをpacmanで取得、インストールします。

bash here

レジストリに直接設定します。昔作ったものが元になっているので、紆余曲折したままごまかしながら使ってます。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\shell]
@="mintty here [selected](&B)"

[HKEY_CLASSES_ROOT\Directory\shell\shell\command]
@="C:\\msys64\\usr\\bin\\mintty.exe -i /msys2.ico /usr/bin/bash -lc 'cd \"%V\"; export CHERE_INVOKING=1; export MSYSTEM=MINGW64; export MSYSCON=mintty.exe; exec bash --login -i'"

[HKEY_CLASSES_ROOT\Directory\shell\shell_sudo]
@="mintty sudo [selected](&B)"

[HKEY_CLASSES_ROOT\Directory\shell\shell_sudo\command]
@="C:\\msys64\\usr\\bin\\mintty_SUDO.exe -i /msys2.ico /usr/bin/bash -lc 'cd \"%V\"; export CHERE_INVOKING=1; export MSYSTEM=MINGW64; export MSYSCON=mintty_SUDO.exe; exec bash --login -i'"

[HKEY_CLASSES_ROOT\Directory\Background\shell\shell]
@="mintty here(&B)"

[HKEY_CLASSES_ROOT\Directory\Background\shell\shell\command]
@="C:\\msys64\\usr\\bin\\mintty.exe -i /msys2.ico /usr/bin/bash -lc 'cd \"%V\"; export CHERE_INVOKING=1; export MSYSTEM=MINGW64; export MSYSCON=mintty.exe; exec bash --login -i'"

[HKEY_CLASSES_ROOT\Directory\Background\shell\shell_sudo]
@="mintty sudo(&B)"

[HKEY_CLASSES_ROOT\Directory\Background\shell\shell_sudo\command]
@="C:\\msys64\\usr\\bin\\mintty_SUDO.exe -i /msys2.ico /usr/bin/bash -lc 'cd \"%V\"; export CHERE_INVOKING=1; export MSYSTEM=MINGW64; export MSYSCON=mintty_SUDO.exe; exec bash --login -i'"


emacs再インストール

インストール

chuntaroさんのx64バイナリを使います。emacs-24.5-IME-patched.zip
をダウンロードして展開、そのまま使えます。今回は、C:\utilities\emacs -> C:\utilities\emacs-24.5-IME-patched とシンボリックリンクを張るような配置にしました。

関連付け

emacsの再インストールでいっつも引っかかるのが、拡張子の関連付け、規定のプログラム指定などがうまくいかなくなることです。毎度、引っかかります。

  • [スタート]->[規定のプログラム]
  • ファイル選択 [右クリ]->[プロパティ]->[プログラム:変更]
  • ファイル選択 [右クリ]->[プログラムから開く...]

などで、再インストールしたrunemacs.exeが登録できません。エクスプローラで新しいrunemacs.exeを選択しても、プログラムとして認識されなくなるのです。

解決策は、レジストリで次の項目を削除するです。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Applications\runemacs.exe]

[HKEY_CLASSES_ROOT\Applications\runemacs.exe\shell]

[HKEY_CLASSES_ROOT\Applications\runemacs.exe\shell\open]

[HKEY_CLASSES_ROOT\Applications\runemacs.exe\shell\open\command]
@="\"C:\\Program Files\\GNU\\Emacs23\\bin\\runemacs.exe\" \"%1\""


古い設定が残っていて、新しいrunemacs.exeが空振りしているようです。HKEY_CLASSES_ROOT\Applications\runemacs.exeのツリーを削除しました。あとは、通常の関連付けができるようになります。あっ、システムが壊れても責任取りませんから。

次のURLを参照して下さい。