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

tanaka51のブログ

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

Emacsを日本語Windows環境で使うために行った、3つのこと

Emacs

会社でEmacsを使いたかったのですが、なかなか踏み切れずにいました。
最近ようやく導入できたので、その時の忘備録の意味も込めて書いておきます。
なぜEmacsを使うのかっていう疑問は、とりあえず横に置いときましょう:-)


Emacsを手っ取り早くWindowsで使うには、おそらく設定済みMeadowを使うのが一番です。
Meadow/Emacs memo: 設定済み Meadow を使ってみよう


だけれども、ここではあえて、GNUのNT Emacsを使います。
理由なんて特に無いです。楽しそうだからそうするまでです。
そこで、最低限、開発できるようになるまでに行った事を、大きく3つに分けて説明します。

  1. 日本語環境への適応(IME文字コード等)
  2. 会社のコーディング規約に則ったインデント
  3. 見た目等の細かな設定

上から順にいきましょう。

日本語環境への適応

まず、日本語を使えるようにします。
やることは二つ。

WindowsのIMEを使えるようにする

Emacs自体にもIMEがあるのですが、正直使いづらい。WindowsのIMEを使えるようにしましょう。
それには、WindowsのIMEを使えるようになるパッチを当てて、ソースコードからビルドしてやる必要があるようです。
パッチを公開して、また設定済みのバイナリを配布しているプロジェクトがありました。
http://ntemacsjp.sourceforge.jp/
しかし、ここでは最新版である23系のバイナリはまだ配布されていません。(更新がとまってる?)
ちょっと調べてたら、23系パッチを当てたバイナリを配布していらっしゃる方がいました。

感謝です。自分でビルドしても良いのですが、それはまたの機会にという事にします。
とりあえず、上記のEmacsをありがたく使わせて頂いています。

<追記  2011/05/13>
コメントで教えていただきました。
最新版のパッチ済みEmacsもダウンロードできるようです。
http://gnupack.sourceforge.jp/docs/current/UsersGuide.html

文字コードとフォントの設定

後は、適切な文字コードとフォントを設定するだけです。
この2つを設定しないと文字化けします。
私は、以下のように設定しています。

;; (~/.emacs.d/init.el)

;; 文字コード
(set-language-environment  'utf-8)
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-keyboard-coding-system 'utf-8)
;; (prefer-coding-system 'sjis)
;; (set-default-coding-systems 'sjis)
;; (set-keyboard-coding-system 'sjis)

;; font
(set-face-font 'default "Takaoゴシック-10")
(set-default-font "Takaoゴシック-10")

文字コードに関して、SHIFT-JISを使う場合は、set-language-environment は設定しない方が良いかもしれません。
フォントはTakaoゴシックを使っていますが、日本語に対応しているフォントなら何でも良いと思います。
フォント設定は以下のサイトを参考にしました。
Emacs23 on Windows のフォント設定 - Div1に残りたいororogの日記

会社のコーディング規約に則ったインデントの設定

Emacsでは、各モードにフックさせる形でインデントを設定します。
まず、基本となるインデントタイプを決めます。
その後、インデントを変えたい箇所にてC-c C-sで設定すべき変数を調べ、値を微調整します。
その気になれば、1からインデントを設定することも可能みたいです。
インデントに関しては、以下のサイトを参考にしました。
Emacs講座 -第9回- C コーディングスタイル / マスタカの ChangeLog メモ
EmacsにおけるC++ source codeの細かいindent設定方法 (1) - I.S.の日記
EmacsにおけるC++ source codeの細かいindent設定方法 (2) - I.S.の日記


また、タブ幅や、タブを半角空白にするのに、以下の様な設定もしました。

;; タブ文字の幅を設定
(setq-default tab-width 2)

;; インデント文字をタブではなく空白に設定
(setq-default indent-tabs-mode nil)

見た目等の細かな設定

とりあえず、上記の設定だけで、最低限の開発環境は整いました。
後は、自分の使いやすいように細かな設定をするだけです。

;; 起動時のウィンドウサイズを設定
(if (boundp 'window-system)
    (setq initial-frame-alist
          (append (list
                   '(width . 180)
                   '(height . 50))
                  initial-frame-alist)))
(setq default-frame-alist initial-frame-alist)

;; 起動時のスプラッシュ画面を非表示
(setq inhibit-startup-message t)

;; ビープ音を消す
(setq visible-bell t)

;; エラー時の画面のフラッシュを抑制
(setq ring-bell-function 'ignore)

;; バックアップファイルの作成をしない
(setq-default make-backup-files nil)

;; ツールバーを非表示 メニューバーを非表示
(tool-bar-mode nil)
(menu-bar-mode nil)

;; 対応する括弧をハイライト
(show-paren-mode t)

;; カラーテーマ
(require 'color-theme)
(color-theme-initialize)
(color-theme-simple-1)


以上です。
なお、今回のEmacs導入に当たっては、以下の本が大変参考になりました。

入門 GNU Emacs 第3版

入門 GNU Emacs 第3版


Emacsの事についてはまた色々と書いて行く予定です。