読者です 読者をやめる 読者になる 読者になる

tanaka51のブログ

http://blog.tanaka51.jp に移転しました

WindowsでEmacsを使う・改

Emacs

前にWindowsでEmacsを使う為の記事を書いたのですが、またWindowsにEmacsを入れる機会があり、その時に分かった事が少々あったので改めて書いてみます。
(前回の記事はこちら こちら)
尚、今回動作確認をした環境はWindows XP Pro 32bitです。
あと、Cygwinは入れない方向で考えています。

Emacsで何ができたら嬉しいかを知る

もともとUnix向けのエディタなので(本当だろうか?)、Windowsで使う為には多少の工夫が必要な場面があったりします。
今回、Emacsで最低限何ができて欲しいのか考えたところ、

  • grep
  • auto-install
  • WindowsのIMEが使える事
  • diredで文字化けせずに使える事

ってな事があがりました。
これらをWindows環境でも使えるようにするためにどうにかします。

Windowsに足りない機能を追加する

まず先に、grepとauto-installの為に必要な機能をWindowsに追加します。

Emacsでのgrepとauto-installは、それぞれ"grep"と"wget"を呼んでいます。
これらは残念な事にWindowsには標準で入って無いんですね。
なのでWindowsに入れておきます。

"Windows grep"なんかでググッて、実行ファイルをパスの遠ったフォルダにぶっこんどくだけでOKです。
一応、今回私が使わせて頂いたプログラムのURLも貼っときます。

grep http://gnuwin32.sourceforge.net/packages/grep.htm
wget http://gnuwin32.sourceforge.net/packages/wget.htm

Windows 7で、gow(gnu on windows)をインストールして使った事があったのですが、wgetがうまく動きませんでした。
7の問題か、gowの問題か分かりませんけど、注意した方が良いかもしれません。

IMEを使えるようにする

これは前回のエントリのコメントにて教えていただきました。
http://gnupack.sourceforge.jp/docs/latest/UsersGuide.html
こちらかの emacs for gnupack から最新版をダウンロードしておきましょう。
後はこれを解凍・インストールするだけでWindowsのIMEが使えるEmacsが使えるはずです。
感謝ですね。

文字エンコーディングの問題を解決する

これも前回も書きましたが、その後分かった事もあるので追記です。

Windowsは内部エンコーディングがShift-JISです。
なので、Emacsの標準文字エンコーディングをUTF-8なんかにしてdiredを使うと、日本語のディレクトリが扱えなくなります。
さらに、diredで扱うエンコーディングとバッファに入力するエンコーディングが違ったりすると最悪ですね。

そこで、WindowsでEmacsを扱う場合、エンコーディングは全てShift-JISにした方が良いという結論になりました。
なので文字コードの設定は以下のようになります。

(set-language-environment 'Japanese)
(prefer-coding-system 'shift_jis)

set-language-environmentにJapaneseを設定すると良くないと聞いた事があったのですが、最新版のEmacsなら問題無いとも聞いたので、設定しておきます。
また、prefer-coding-systemは、全ての文字コードを一括して指定できるらしいので、最新版ならこれ一つ設定するだけでOKのようです。

エンコーディングで面倒なのは、日本語のgrep検索時に、文字コードの差異を気にしなきゃいけなくなる所ですよね。
ただし、これは lgrep というgrepの亜種を使えば解決するようです。
これはまたその内やってみようかと。
検索といえば、migemo検索もやってみたいのですが、ちょっと手を出してみた感じうまくいかず・・・これもその内再挑戦してみる。

後は、忘れずに日本語フォントを設定しておきましょう。
これは前回のエントリを参考にしていただければ。



こんな所です。
Windowsの内部文字エンコーディングがUTF-8になってくれる日を心から待っています。