2007年9月22日土曜日

Emacsのとりあえず最低限の環境を整える





 ubuntuでemacsを使用するにさいして、最低限の環境を構築します。

 たまに、emacsはデフォルトの設定が最低だという人がいますが、あたりまえでしょう。別にemacsはlinuxのためのエディタというわけではありませんし、WindowsやMacでもUNIXのためのエディタというわけでもありません。
EmacsはEmacsです
 初期のEmacsが動いたマシンにはカーソルキーがありませんでした。ですからカーソルの移動はCtrl + P,N,B,Fでした。最近のキーボードではカーソルキーが付いているのは当たり前になっていますが、私のキーボードにはファンクションキーもカーソルキーもありません・・・べ、別に不便じゃないんだからっ

 と、ともかく、Emacsはおそらく世界でもっとも多くのプットフォームに移植されたプログラムでしょう。そのEmacsがすべてのプラットフォーム用の設定を同梱するのは無意味ですし非合理的です。そんな作業はディストリビュータのお仕事でしょう。例えばvineでは最初からかなりカスタマイズされたEmacsが用意されているらしいです。ubuntuでは最適な初期設定は人によって違うからということで素のままのEmacsが用意されています。
 ですがさすがに日本語設定もされていないのは不便と感じたのかubuntu-jaチームが日本語設定導入パッケージを用意してくれています。

 とはいえEmacs+日本語環境、だけではあまりにもそっけなく、ぶっちゃけ使いにくいものです。そこで、とりあえず最低限、何が最低限必要なのかは置いておくとして、それなりに便利な環境構築をまずはやってみましょう。


 はじめに、
各種設定は、~/.emacsファイルに書いていきます。また、elispファイルは~/.lisp/ディレクトリにに入れることを前途に説明していきます。あらかじめ~/.emacs ファイルの先頭付近に、
;===================================
;; load path
;===================================
(setq load-path (cons "~/.lisp/" load-path))
として、~/.lisp/へのパスを設定しておいてください。~/.lisp/以外に格納したい場合は読み替えてください。

日本語環境


 日本語環境は、
sudo apt-get install emacs-env-ja
すれば日本語環境は一通り揃えてくれるはずです。試していないので分かりませんが。
一応参考程度に私が使っている日本語まわりの設定を貼り付けておきます。

 日本語入力

;===================================
; Language
;===================================
(if (string-match "^21\." emacs-version)
(require 'un-define))
(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8-unix)
;(set-buffer-file-coding-system 'utf-8)
(setq file-name-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
;(set-clipboard-coding-system 'utf-8)

;===================================
; Anthy
; CTRL-\で入力モード切替え
;===================================
(load-library "anthy")
(setq default-input-method "japanese-anthy")
(setq anthy-accept-timeout 1) ;;emacs23用。ディレイ短縮。動作を機敏に。
;ローマ字変換外部テーブル読み込み。
;(if (file-exists-p (expand-file-name "~/.emacs.anthy"))
; (load (expand-file-name "~/.emacs.anthy") nil t nil))


 日本語フォント

;===================================
; font
;===================================
; emacs23 用設定
(cond ( (string-match "^23\." emacs-version)
(cond (window-system
(set-default-font "Bitstream Vera Sans Mono-15")
(set-fontset-font (frame-parameter nil 'font)
'japanese-jisx0208
; '("IPAゴシック" . "unicode-bmp"))
'("IPAGothic" . "unicode-bmp"))
; '("Yutapon coding Heavy" . "unicode-bmp"))
; '("Hiragino Gothic" . "unicode-bmp"))
))))

; emacs21 用設定
(cond ((string-match "^21\." emacs-version)
(cond (window-system
(create-fontset-from-fontset-spec
"-shinonome-gothic-medium-r-normal--18-*-*-*-*-*-fontset-18")
(set-default-font "fontset-18")))))


最近開いたファイル、を出来るようにする




バッファ一切り替えを使いやすくする



バッファ一覧をまともなものに

 デフォルトのバッファ一覧は、ほんとにタダ一覧表示するだけなので使いにくいだけです。これを変えましょう。
~/.emacsに以下を追記。
(global-set-key "\C-x\C-b" 'bs-show) ;;bs-showでバッファ選択する。


ミニバッファを使いやすくする



Shift + 矢印キーで範囲選択できるようにする

~/.emacsに以下を追記.
(pc-selection-mode) ;;shift+矢印キーでの範囲選択


選択範囲に色を付けて見た目わかりやすくする

~/.emacsに以下を追記.
(transient-mark-mode 1) ;;選択範囲に色を付ける


ファイルを開くとき、前回開いた位置を記憶して復元する



複数のフレームを開いた状態を記憶しておき、いつでも復元できるようにする



全角・タブ文字を見えるようにする



行番号を表示させる


 これも定番です。なくてもあまり問題ないですけどね。私は使わなくなりました。
 setnu.elを使います。
こちらから落としてきて~/.lisp/当たりに放り込み、~/.emacsに以下を追記します。
 F12キーを押すことで行番号表示がトグル動作します。
;;====================================
;;行番号表示モード
;====================================
(autoload 'setnu-mode "setnu" nil t)
(global-set-key [f12] 'setnu-mode)


自分に使いやすいように色を変える



色分けをする

 色分けがないとね。emacs22以降からはデフォルトでONになっているようです。
~/.emacsに以下を追記。
(global-font-lock-mode t) ; 文字の色つけ


行間を設定する

~/.emacsに以下を追記。
;====================================
; 行間設定
;====================================
;;整数で指定するとピクセル数で、少数で指定すると
;;行の高さに対して相対値で設定されます。
(setq-default line-spacing 0.1)
数値を変えて自分にあった行間を調整してみてください。

指定したサイズでemacsを開く




カーソル移動の挙動を変える


 論理行単位ではなく、物理行(見たまま)単位で移動出来るようにします。
 physical-line.elを使います。標準ではないので、こちらから落としてきて~/.lisp/にでも放り込んでおきます。

;====================================
; カーソル移動設定
;====================================
;カーソル移動を論理行ではなく、物理行(見たまま)単位で移動する。
(require 'physical-line)
(setq-default physical-line-mode t)
;; dired-mode は論理行移動のままにする.
(setq physical-line-ignoring-mode-list '(dired-mode))


スクロール行数を変える

 デフォルトは半ページごとにスクロールです。これを4行ずつスクロールするようにします。1行毎だとうちのPCでは能力不足で無理だったorz
~/.emacsに以下を追記。
;====================================
; スクロール設定
;====================================
(setq scroll-conservatively 35
scroll-margin 0
scroll-step 4) ;4行ずつスクロールする


その他

 それほど重要でもないもの、瑣末なものをいくつか。
~/.emacsに以下を追記します。
;====================================
; Misc
;====================================
(if (string-match "^21\." emacs-version)
(display-time)) ;;時計を表示
(if (string-match "^21\." emacs-version)
(setq line-number-mode t) ;;カーソルのある行番号を表示
(setq column-number-mode t) ;;桁番号を表示
(setq frame-title-format ;;フレームのタイトル指定
(concat "%b - emacs@" system-name))
(setq inhibit-startup-message t) ;;起動時のメッセージを消す
(set-scroll-bar-mode 'right) ;;スクロールバーを右側に
(show-paren-mode 1) ;; 対応する括弧を光らせる(グラフィック環境のみ作用)
(tool-bar-mode 0) ;;ツールバーを消す。
(menu-bar-mode 0) ;;メニューバーを消す
(auto-compression-mode t) ;;圧縮されたファイルも編集&日本語infoの文字化け防止
(fset 'yes-or-no-p 'y-or-n-p) ;;"yes or no"を"y or n"にする
(setq browse-url-browser-function 'browse-url-firefox) ;;デフォルトのブラウザ設定




げっぷ

 とりあえず、こんなものでどうでしょうか。私にとってはこれらすべてを設定してとりあえず最低限とします。
 ほんとはこの他にもキーバインドを色々いじくっていますがw
C-h はデフォルトではヘルプキーですが、バックスペースキーに切り替えたりとか。

0 件のコメント: