Emacs


以前は XEmacs を使っていたのですが、 諸々の事情から Emacs に乗り換えました。

ここでは Emacs の導入、設定方法を紹介します。

1. 導入

FreeBSD で Emacs を利用する場合、ソースから自分でコンパイルする方法と、 ports (packages) を利用する方法があります。 ここでは、ports を利用する方法を紹介します。

僕の場合、以下の条件を満たす Emacs が必要です。

  • ports で管理出来ること (バージョンアップへの対応を容易にするため)
  • XIM をサポートしないこと
  • 組み込みの『かんな』を使って日本語の入力が出来ること

この条件を満たすため、ports から japanese/emacs-emcws をインストールします。

かんなのインタフェースを使用していますが、実際のかな漢字変換エンジンには、 商用の VJE-Delta を使用しています。このため、『えせかんな』をインストールし、 Emacs に組み込まれたかんなのフロントエンドから、えせかんなサーバを経由し、 VJE-Delta でかな漢字変換を行う、という方式にしています。

2. 準備

ports で楽に管理するため、/usr/local/etc/pkgtools.conf の MAKE_ARGS に以下の記述を追加しておきます。


  'japanese/emacs-emcws' => 'WITH_WNN7=no',

これで、Wnn を外した状態でコンパイルされます。

XIM を無効にしたいのですが、japanese/emacs-emcws の make の延長で実行される、 editors/emacs の configure 時に XIM は自動的に有効になってしまいます。 portinstall が make する対象は japanese/emacs-emcws であるため、 pkgtools.conf で XIM を無効にするような設定が出来ません。 また、japanese/emacs-emcws の Makefile には WITHOUT_XIM といった変数も定義されていません。

そこで、japanese/emacs-emcws の下に Makefile.local を用意して、 XIM を無効にするように CONFIGURE_ARGS に --without-xim を追加します。


  # cd /usr/ports/japanese/emacs-emcws
  # echo 'CONFIGURE_ARGS+= --without-xim' > Makefile.local

これで準備は完了です。

3. コンパイル

portinstall を使って ports から japanese/emacs-emcws をインストールします。


  # portinstall 'japanese/emacs-emcws'

これで、期待通りの Emacs (emcws) が build され、インストールされます。

4. 設定

Emacs の設定は ~/.emacs に記述します。

主な設定は以下の通り。


  ;; 日本語の設定
  (set-language-environment "Japanese")
  (set-default-coding-systems 'euc-jp)
  (set-keyboard-coding-system 'japanese-iso-8bit-unix)

  ;; Canna を使うための設定
  (load-library "canna")
  (canna)
  ;; キーバインドを "Ctrl + o' にする。
  (global-set-key "\C-o" 'canna-toggle-japanese-mode)
  ;; フェンスモード中のバックスペースを有効にする
  (define-key canna-mode-map "\C-?" "\C-h")

  ;; キーバインドのカスタマイズ
  ;; C-t でテキストモード
  (global-set-key "\C-t" 'text-mode)
  ;; C-c C-u で auto-fill-mode の切替え
  (global-set-key "\C-c\C-u" 'auto-fill-mode)
  ;; C-c C-f で fill
  (global-set-key "\C-c\C-f" 'fill-region-as-paragraph)

  ;; フォントの設定
  (cond (window-system 
         (setq initial-frame-alist
  	     (append
  	      '((width . 80) (height . 54) (top . 0) (left . 600))
  	      initial-frame-alist))
         (setq default-frame-alist
  	     (append
  	      '((width . 80) (height . 54) (top . 0) (left . 600)
  		(font . "-misc-fixed-medium-r-normal--14-*"))
  	      default-frame-alist))))

  ;; 時刻の表示
  (setq display-time-24hr-format t)  ;; 24 時間表記
  (setq display-time-day-and-date t) ;; 日付も
  ;; 出力フォーマット
  (setq display-time-string-forms
        '(month "/" day "(" dayname ") " 24-hours ":" minutes))
  (display-time)

  ;; 行番号の表示
  (setq line-number-mode t)

  ;; 行間
  (set-default 'line-spacing 3)

  ;; カレントのバッファにのみカーソルを表示
  (setq cursor-in-non-selected-windows nil)

  ;; スクロール時に 1 行ずつスクロールする
  ;(setq scroll-step 1)

  ;; ホィールマウスを有効にする (X の場合)
  (cond (window-system
         (mwheel-install)))

  ;; *~ のバックアップファイルを作らない
  (setq backup-inhibited t)

  ;; メニューバーを消す
  ;(menu-bar-mode 0)

  ;; ツールバーを消す (X の場合のみ)
  (tool-bar-mode 0)

  ;; スクロールバーを右側に表示する (X の場合のみ)
  (set-scroll-bar-mode 'right)

  ;; カーソルの点滅をやめる
  (blink-cursor-mode 0)

  ;; リージョン指定時の選択範囲をグラフィカルに表示
  (setq transient-mark-mode t)
  ;; その際の色を変更
  (set-face-background 'region "gray")
  (set-face-foreground 'region "black")

  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;; text モード
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  
  (setq text-mode-hook) '(lambda ()
  			 (setq fill-column 76)
  			 (auto-fill-mode 1))

japanese/emacs-emcws は /usr/local/bin/emcws としてインストールされるので、 以下のように ~/.cshrc でエイリアスを設定しておきます。


  alias emacs '/usr/local/bin/emcws'

5. スクリーンショット

以上のような設定で Emacs (emcws) を起動した場合の スクリーンショット


tetSTREAMS > FreeBSD > Emacs