Emacs 利用ガイド Munehiro Yamamoto Masaharu Iwai Vine Linux 5 以降の Emacs(以下、Emacs は GNU Emacs を指す)環境は、 Vine Linux 4.2 までのそれと比べて、大幅に変更されました。 このドキュメントは、Vine Linux 5 以降に新しく搭載された system-wide な設定および Vine Linux のデフォルト設定を中心に、 Vine Linux 6 の Emacs 環境を解説します。 Emacs を始めよう! Emacs の起動画面を使いながら、Emacs の基本事項や基本操作を説明します。 とくに断りがないかぎり、本ガイドの Emacs は、 Emacs-23.3 を用いているものとします。 Emacs-24.0.93 を利用する場合には、適切に読み替えてください。 Emacs をインストール Vine Linux 6 の Emacs は、 Emacs-23.3 と Emacs-24.0.93 が用意されています。 Emacs-23.3, Emacs-24.0.93 は、 それぞれ emacs, emacs24 パッケージをインストールすることで、 利用できます。 Emacs-23.3 $ sudo apt-get install emacs Emacs-24.0.93 $ sudo apt-get install emacs24 Emacs を起動 ToDo: Emacs 23.X の起動画面をスクリーンショットする。 メニューからバッファ、ミニバッファなどの説明を図説する。
Emacsの起動画面
バッファ Emacs では、編集中の文書はバッファと呼ばれるメモリ領域に読み込まれ、このバッファの内容に対して書き込みや修正を行います。ファイルに保存する命令を実行した時にはじめて、バッファの内容はディスク上のファイルに書き込まれます。 バッファの内容はウィンドウに表示されます。ウィンドウは複数用意することができ、そこに複数のバッファの内容や、同じバッファの違う部分を表示して編集を行うことができます。 バッファの編集状況等の情報は、ウィンドウの最下部のモードラインに表示されます。 ウィンドウという言葉について 一般的な「ウィンドウ」という言葉と、emacs での「ウィンドウ」は異なります。 一般的なウィンドウは emacs ではフレームといい、一つのフレームの中を分割したものをウィンドウと呼びます。 文字入力 ウィンドウにカーソルがある時、キーボードから入力した文字はカーソル位置に挿入され、カーソルが進みます。日本語を入力する時には、'C-\'で日本語切替えモードになります。 もう一度'C-\'を押すとアルファベットの入力モードに戻ります。 日本語入力システムについては、デスクトップユーザーズガイドGUI環境での日本語入力を参照して下さい。 TABキーを押すと行のインデントの調整となってしまい、TAB文字を入力出来ないことがあります。そのような時には、C-q TAB のように、C-q のあとでキーを押してください。 また、C-q C-j とすると、改行記号を入力できます。Enter キーの代わりに利用することで、 などの時に改行を含んだ文字列を扱うことができます。 カーソル移動 編集中のカーソルの移動は矢印キーの他、以下のようなキーで移動できます。 カーソル移動 キー操作意味C-b または ←一文字左へ C-f または →一文字右へC-p または ↑一文字上へC-n または ↓一文字下へC-v または PgDn次の画面に進むM-v または PgUp前の画面に戻るC-dカーソル位置の文字を削除C-kカーソル位置から行末までの文字を削除C-e行の一番右へC-a行の一番左へM-f一単語右へM-b一単語左へM-x goto-line指定行へ移動C-space または C-@現在のカーソル位置にマークをつけ記憶させるC-x C-x現在のカーソル位置にマークをつけ、前回マークをつけた位置まで戻る(繰り返すと二点を交互に行き来します)
文字削除 カーソル位置の文字の削除は C-d を用います。その他単語の削除や行末の削除等のキーもあります。 文字削除 キー操作意味C-dカーソル位置の文字を削除M-dカーソル位置から一単語削除C-kカーソル位置から行末までの文字を削除M-kカーソル位置から文末までの文字を削除
文字列検索・置換 カーソル行以降の文字列検索には、C-s を用います。C-s を入力するとミニバッファに I-search: と表示されるので、検索したい文字列を入力して下さい。検索の終了は C-g を押します。 一度入力した文字列を続けて検索したい時には、C-s を続けて2回押します。C-s の代わりに C-r を用いるとカーソル位置より前にある検索文字列を表示します。日本語の文字列を検索する場合migemoという便利なツールがあります。を参照してください。は、C-sの後にEnterを押してから、C-\;でかな漢字変換モードにしてから入力して下さい。 確認付きの文字列の置換を行うには M-% を用います。M-% を入力すると Query-replace: とミニバッファに表示されますので、まず置換したい文字列を入力します。例えば, C言語プログラムでint を long にしたいときには、M-%の後に int と入力し、Enterキーを押します。ミニバッファの表示が以下のように代わるので、ここで long を入力し, Enterキーを押します。 Query-replace int with: long 置換する文字列 int があるとそこで、以下のように表示されます。 Query-replace int with long: (? for help) ここで、スペースキーか'y'を押せば置換が行われ、'n'を押すと置換は行わず、次の候補に移動します。終了するときには、Enterキーか'q'を入力します。上に表示されている通り '?' を入力すればコマンドのリストが表示されます。 文字列の置換を確認なしに一括して行いたいときには、まず一括置換を開始したい場所にカーソルを移動し、M-x を押します。このとき、ミニバッファの表示は以下のようになります。 M-x ここで、replace-string と入力し、Enterキーを押します。 M-x replace-string その後は、確認のある場合の文字列置換の場合と同様に、置換のための文字列を入力すれば、一括置換が行われます。 emacs には replace-string の他、非常にたくさんのコマンドがあり、M-x は、このコマンドを入力するのに使われます。コマンドの名前はTabキーで補完しながら入力することができます。候補のコマンドが複数あるときには、候補一覧が表示されます。 文字列検索・置換 キー操作意味C-s文字検索 (カーソル行以降で検索)C-r文字検索 (カーソル行より前で検索)M-%文字列置換(確認あり)M-x replace-string文字列置換(確認なし)
アンドゥ (取消) 実行したコマンドを取り消して、バッファを元の状態に戻すには、C-x u (または C-_ )を用います。連続して C-x u を用いると、実行した回数だけ前の状態に戻ります。 アンドゥ (取消) キー操作意味C-x u または C-_アンドゥ(実行したコマンドの取消)
カット/コピー/ペースト 編集中のバッファの一部分を別の場所にコピーするには以下のような手順で行います。 コピーしたい部分の先頭にカーソルを移動します。 C-Space (または C-@)を入力します(これで現在のカーソルの位置が記憶されます)。 コピーしたい部分の終りまたは始めにカーソルを移動します。 M-w を押す(これで先頭位置(C-Spaceを押した位置)からこの終りの部分までが記憶されます。この部分をリージョン(region:領域)と呼びます。) コピー先にカーソルを移動します。 C-y を入力します。これでペースト(Emacsではyank(ヤンク)といいます)完了です。 一部分を削除したい時には、上のコピーの手続きで、M-w を入力するかわりに、C-w を入力すれば、設定したリージョンは削除され、記憶されます。 一部分を移動したい時には、上の手続きで削除を行った後、移動先へカーソルを持って行きコピーの場合と同様に C-y を入力すれば、記憶されているリージョンがそこに出力されます。 カット/コピー/ペースト キー操作意味C-space または C-@始点のマークM-w始点から現在のカーソル位置までを記憶(コピー)C-w始点から現在のカーソル位置までを削除して記憶(カット)C-y記憶内容をカーソル位置に貼付け(ペースト)
ウィンドウ操作 複数のファイルを編集する場合には、ウィンドウを複数開いて、各ウィンドウに、同じバッファの異なる位置を表示したり、複数のバッファを表示したりして編集することができます。 例えば C-x 2 を入力するとカーソルのあるウィンドウが上下2つに分割されます。もとの通り分割されたウィンドウを一つに戻すには、C-x 1 を入力すれば、カーソルのあるほうのウィンドウのみの表示になります。分割したウィンドウ間のカーソル移動には C-x o を用います。分割したウィンドウの境界はマウスでドラッグすれば移動することもできます。 また、C-x 5 2 を入力すると、新しいフレーム(参照)がつくられます。複数のフレーム間のカーソル移動には C-x 5 o を用います。 現在のウィンドウに表示するバッファを変更したい時には C-x b を入力すると, 以下のように表示されます。 Switch to buffer: (default test.txt) ここで、ウィンドウに表示したいバッファ名を入力し、Enterキーを押せば表示バッファが切り替わります。ここで、候補のバッファの一つが上のように default の後ろに表示されます。この候補でよいときには単にEnterキーを押して下さい。 ウィンドウ操作 キー操作意味C-x 2ウィンドウを上下に分割C-x 3ウィンドウを左右に分割C-x o分割したウィンドウ間をカーソル移動C-x 0分割したウィンドウのうちカーソルのあるほうを閉じるC-x 1分割したウィンドウのうちカーソルの無いほうを閉じるC-x +分割したウィンドウの高さ、幅を均等にするC-x 5 2新しいフレームを開くC-x 5 oフレーム間でカーソル移動C-x 5 0カーソルのあるフレームを閉じるC-x b現在のウィンドウに表示するバッファを指定する
ファイル一覧ウィンドウでの操作 C-x C-b で編集中のバッファの一覧が表示されます。この一覧表示をしてるウィンドウに C-x o で移動すると、各バッファについていろいな操作を行えます。カーソルの移動は、編集時と同様に C-n, C-p なども使えますが、この一覧表示のバッファでは単に n や p でも移動できます。 ウィンドウに表示したいバッファ名の位置にカーソルを移動し、1 を入力するとウィンドウにはそのバッファの内容が表示されます。その他、削除マークや保存マーク等をつけて、一括して削除や保存と言った作業も行えます。できる操作の一覧は「?」で表示されます。 ファイル一覧ウィンドウでの操作 キー操作意味nカーソルを次の行へ進めるpカーソルを前の行へ戻す1カーソル行のバッファを現在のウィンドウいっぱいに表示するfカーソル行のバッファを現在のウィンドウに表示するdカーソル行のバッファに削除マークをつけるsカーソル行のバッファに保存マークをつけるx削除マークのあるバッファを削除し、保存マークのあるバッファをファイルに保存するuバッファについているマークを消します。
Vine Linux 6 の Emacs 環境 Vine Linux 6 の Emacs 環境は、 Vine Linux 5 で一新された Emacs 環境から、 さらに利便性の改善をはかりました。 Vine Linux 4.2 以前の Emacs 環境()では、 システム全体での設定()を RPM パッケージに含まれている設定と異なるものにする場合、 その RPM パッケージがアップデートされるたびに修正する必要がありました。 Vine Linux 5 で導入された仕組みにより、 個別の RPM パッケージに含まれている設定()と システム全体での設定()を別のファイルに記述するようになりました。 システム全体での設定()を変更していた場合、 RPM パッケージをアップデートしても内容をそのまま保持するようになっています。 Vine Linux 6 では、次の順で設定が読み込まれます。 個別の RPM パッケージでの設定( システム全体での設定( 同一の設定項目について、それぞれで設定している場合は、 後から読み込まれる設定が有効となります。 また、システム全体での設定()は、 RPM パッケージのアップデートで置き換えられてしまうことがありません。 そのため、個別の RPM パッケージでの設定()を で上書きできます。 distribution-wide な設定 の導入により、 システム標準の設定を、 個別の RPM パッケージごとに設定しています。 これにより、ユーザは何も設定を記述しなくても、 elisp アプリケーションがある程度、使えるようになっています。 詳しくは、 を参照してください。 system-wide な設定 Vine Linux 5 以降の Emacs では、 従来よりもシステム全体の設定をより記述しやすくなりました。 system-wide な設定ファイルは、 /etc/emacs/emacs23-local.el) に配置されています。 Emacs-23.3 を起動したとき、 もし /etc/emacs/emacs23-local.el が存在すれば、 site-start.el の一番最後に読み込まれます。 したがって、 よりも emacs23-local.el が優先されます。
/etc/emacs/emacs23-local.el ;; ;; GNU Emacs 23.3 local configuration file ;; ;; This configuration is read at the end of site-start.el. ;; Emacs configuration files are read ;; - distribution wide from site-start.el ;; - system wide from this configuration file ;; - per user from ~/.emacs.d/init.el, ;; where per user settings override system wide settings, ;; and system wide settings override site-start.el. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Local Variables: ;; mode: emacs-lisp ;; End:
ユーザごとの設定 vine-default 設定ファイル ~/.emacs.d/emacs23-vine-default.el) および ユーザ初期設定ファイル ~/.emacs.d/init.el) から構成されます。 詳しくは、 を参照してください。 vine-default 設定ファイル vine-default 設定ファイルには、 により個別の RPM パッケージごとに設定された vine-default を制御するための設定を記述できます。
~/.emacs.d/emacs23-vine-default.el ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; -*- coding: utf-8-unix -*- ;; FSF Emacs 23 用 vine-default 設定ファイル ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Vine Linux のデフォルト設定を無効にしたい場合は、 ;; 以下を有効にしてください。 ;; (setq vine-default nil) ;; 環境変数 EMACS_IME と異なる IME を使いたい場合は、 ;; 以下を有効にして設定することができます。 ;; (setq emacs-ime "atokx3");; anthy-el atokx3 ibus-el mozc tamago scim scim-bridge skk wnn7egg ;; マクロサーチパスの追加 ;; 例えば、~/.emacs.d/local 以下にユーザ用の *.el, *.elc を置けます。 ;; (add-to-list 'load-path "~/.emacs.d/local") ;; (add-to-list 'load-path "~/lib/emacs") ;; (add-to-list 'load-path "~/.emacs.d/auto-install") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Local Variables: ;; mode: emacs-lisp ;; End:
ユーザ初期設定ファイル ユーザ初期設定ファイルには、 Emacs に関わる設定を自由に記述できます。
~/.emacs.d/init.el ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; -*- coding: utf-8-unix -*- ;; FSF Emacs 初期設定ファイル ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Local Variables: ;; mode: emacs-lisp ;; End:
デフォルトのユーザ初期設定ファイルを変更しました! Vine Linux 6 では、デフォルトのユーザ初期設定ファイルとして、 ${HOME}/.emacs.d/init.el を推奨します。 Emacs は通常、 ~/.emacs, ~/.emacs.el, ~/.emacs.d/init.el の順番に探し、 一番最初に見つけたファイルを 「デフォルトのユーザ初期設定ファイル」とする挙動をします。 したがいまして、Vine Linux 6 の Emacs においても、 従来の ~/.emacs.el を 「デフォルトのユーザ初期設定ファイル」として利用することもできますが、 推奨しません。
Vine Linux のデフォルト設定:vine-default Vine Linux の Emacs では、 Emacs 上で動作するアプリケーションの RPM パッケージに初期設定が含まれています()。 そのため、 ユーザ初期設定ファイル ~/.emacs.d/init.el) に何も設定を記述しなくても、 elisp アプリケーションがある程度使えるようになっています。 この Emacs における Vine Linux のデフォルト設定を vine-default と呼んでいます。 使い方 vine-default は、 /usr/share/emacs-23.3/site-lisp 以下に格納されています。 vine-default-base.el:Emacs の基本的な設定 vine-default-faces.el:Emacs のフォントやカラーの設定 package/vine-default-package.el:package の設定 Emacs を起動すると、 デフォルトで vine-default の boolean が t になっているので、 vine-default を読み込みます。 vine-default をすべて無効にする もし vine-default をすべて無効にしたい場合は、 ~/.emacs.d/emacs23-vine-default.el) に (setq vine-default nil) を設定します。 この場合は、メニューバーと言語ロケール以外は何も設定されていません。 一部の vine-default を無効にする vine-default のうち、いくつかの設定を無効にすることができます。 各 vine-default は、vine-default-name の boolean が定義されていて、 デフォルトでは t になっています。 例えば、 vine-default-base, vine-default-faces, vine-default-yatex, vine-default-mew を無効にしたい場合は、 ~/.emacs.d/emacs23-vine-default.el) に (setq vine-default-base nil vine-default-faces nil vine-default-yatex nil vine-default-mew nil ) を設定します。 一部の vine-default だけを有効にする いくつかの Emacs Lisp パッケージのみを有効にしたいときは、 一旦すべての vine-default を無効にした上で、 いくつかの vine-default を有効にしてください。 例えば、 vine-default.yatex, vine-default-tamago のみを有効にしたい場合は、 まず、 ~/.emacs.d/emacs23-vine-default.el) に (setq vine-default nil) を設定します。つぎに、 ~/.emacs.d/init.el) の然るべきところに (require 'vine-default-yatex)(require 'vine-default-tamago) を設定します。 インストールされている vine-default の設定を閲覧 Emacs 上からインストールされている elisp パッケージにあらかじめ設定されている vine-default の設定を閲覧できます。 Emacs 上で M-x show-vine-default を実行すると、 起動している Emacs のバージョンに対応した vine-default の設定を閲覧できます。 M-x show-vine-default で表示される vine-default の設定は、 インストールされている vine-default の設定をすべて表示します。 したがいまして、 ある vine-default-package の設定を無効にしていたとしても、 その設定は、 M-x show-vine-default で表示される設定の中にも現れます。 IME Emacs 上におけるデフォルトの IME は、 X 上におけるそれと連動して、 setime コマンドなどで設定される環境変数 EMACS_IME で決定されます Vine Linux 6 の初期設定では、各ユーザのホームディレクトリに作成される ~/.XresourcesEmacs*useXIM の値として falseが設定されているため、XIMは使われません。 Vine Linux 5 での初期設定では、 tamago パッケージがインストールされている場合は tamago の Anthy インタフェースが使われます。 tamago パッケージをインストールしていない場合は emacs パッケージに同梱されている LEIM (Library of Emacs Input Method) が使われます。 LEIM では Vine Linux 5 標準のかな漢字変換システム Anthy を使いませんので、 変換効率が低くなってしまいます。 環境変数 EMACS_IME と異なる IME を使いたい場合は、 ~/.emacs.d/emacs23-vine-default.el) で emacs-ime の値に指定してください。 anthy-el パッケージに含まれる anthy.el を使うときは、次のように設定します 指定する値はを参照してください。 (setq emacs-ime "anthy-el") vine-default の仕組み vine-default は、以下のようにして Vine Linux のデフォルト設定が読み込まれます。 それぞれの elisp アプリケーションの初期設定ファイル /etc/emacs-23.3/site-start.d/*-init.el を然るべき順序で読み込む vine-default-setup-hook に、 各 elisp アプリケーションの vine-default-package を然るべき順序でひっかけておく ~/.emacs.d/emacs23-vine-default.el) を参照して、それぞれの vine-default-package の挙動がきまる vine-default-setup を実行することで、 vine-default-setup-hook にひっかけていた vine-default-package~/.emacs.d/emacs23-vine-default.el) に応じて、読み込まれる。 実際に、以下のような順序で vine-default に関するファイルを読み込み、 vine-default を実行します。 /usr/share/emacs-23.3/site-lisp/site-start.el /etc/emacs-23.3/site-start.d/XXpackage-init.el (X ∈ {0, 1, 2,..., 9}) /etc/emacs/emacs23-local.el vine-default 用設定ファイル ${HOME}/.emacs.d/emacs23-vine-default.el vine-default-setup を実行: /usr/share/emacs-23.3/site-lisp/ 以下の vine-default-base.el, vine-default-faces.el package/vine-default-package.el デフォルトのユーザ初期設定ファイル ${HOME}/.emacs.d/init.el Vine Linux 5 から Vine Linux 6 への変更 Vine Linux 6 の vine-default の仕組みは、 Vine Linux 5 の vine-default からいくつか改良しました。 主な変更点は、以下のようになります。 vine-default を呼ぶタイミングを改善するときに、 vine-default 設定ファイル ~/.emacs.d/emacs23-vine-default.el) を設けました。 これにより、ユーザ自身の Emacs に関する設定から vine-default に関する設定のみを分離できます。 vine-default を呼ぶタイミングを改善したことにより、 after-vine-default-setup-hook を廃止しました。 これにより、vine-default に関する設定が、 ユーザ初期設定ファイル ~/.emacs.d/init.el) に混在しません。 システム全体での設定()を担う設定ファイル名が /etc/emacs/emacs-23-local.el から /etc/emacs/emacs23-local.el へ変更 vine-default に関する関数とフック 具体的には、 /usr/share/emacs-23.3/site-lisp/site-start.el に、以下のような関数とフックを定義しています。 (defcustom vine-default t "A boolean for all Vine Linux default settings" :type 'boolean) (if (equal (getenv "LOGNAME") "root") (setq vine-default nil)) (defcustom vine-default-base t "A boolean for vine-default-base" :type 'boolean) (defcustom vine-default-faces t "A boolean for vine-default-faces" :type 'boolean) (defvar vine-default-setup-hook nil "List of functions to be called at vine-default-setup") (defun vine-default-setup () "A function for setup to default configurations of Vine Linux" (when vine-default (message "Starting vine-default-setup ...") (when vine-default-base (message "Loading vine-default-base ...") (require 'vine-default-base)) (when vine-default-faces (message "Loading vine-default-faces ...") (require 'vine-default-faces)) (run-hooks 'vine-default-setup-hook) ;; (run-hooks 'after-vine-default-setup-hook); obsolete ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; run functions from the /etc/emacs-23.3/site-start.d directory ;;; Files in this directory ending with ".el" are run on startup (mapc 'load (directory-files "/etc/emacs-23.3/site-start.d" t "\\.el\\'")) ;;; load local configuration (if (file-exists-p (expand-file-name "/etc/emacs/emacs23-local.el")) (load (expand-file-name "/etc/emacs/emacs23-local.el"))) ;;; load vine-default configuration per user before vine-default-setup (if (file-exists-p (expand-file-name "~/.emacs.d/emacs23-vine-default.el")) (load (expand-file-name "~/.emacs.d/emacs23-vine-default.el"))) ;;; run vine-default-setup (vine-default-setup) 各 elisp アプリケーションの vine-default-<emphasis>package</emphasis> 例えば、ibus-el の場合は /etc/emacs-23.3/site-start.d/95ibus-el-init.el に以下のような設定をしています。 (defcustom vine-default-ibus-el t "A boolean for vine-default-ibus-el" :type 'boolean) (add-hook 'vine-default-setup-hook (lambda() (when vine-default-ibus-el (message "Loading vine-default-ibus-el ...") (require 'vine-default-ibus-el)))) /usr/share/emacs-23.3/site-lisp/ibus-el/vine-default-ibus-el.el には、 ibus-el に関するデフォルト設定を記述して、 (provide 'vine-default-ibus-el) を提供しています。 カスタマイズ vine-default に関するカスタマイズの例を紹介します。 /etc/emacs/emacs23-local.el を用いた vine-default の変更 システム全体で vine-default をすべて無効にしたい場合は、 /etc/emacs/emacs23-local.el) に (setq vine-default nil) を設定するのもよいでしょう。 この設定を施したシステムにおいて、 あるユーザが vine-default をすべて有効にしたい場合は、 ~/.emacs.d/emacs23-vine-default.el) に (setq vine-default t) を設定します。 マクロサーチパスの追加 ~/.emacs.d/emacs23-vine-default.el) に、ユーザのマクロサーチパスのディレクトリをまとめて設定しておくと、 便利でしょう。 例えば、~/.emacs.d/local を追加したい場合、 ~/.emacs.d/emacs23-vine-default.el) に (add-to-list 'load-path "~/.emacs.d/local") を設定します。 Vine Linux 6 の Emacs 環境では、 従来、ユーザのマクロサーチパスのディレクトリであった ~/lib/emacs を設けていません。 必要であれば、 ~/.emacs.d/emacs23-vine-default.el) に (add-to-list 'load-path "~/lib/emacs") を設定します。 wl-2.14.0 と wl-beta-2.15.9 との共存 Wanderlust の安定版 2.14.0、開発版 2.15.9 は、 それぞれ wl, wl-beta パッケージにより提供されます。 しかしながら、 M-x wl を実行して起動できるバージョンは、 どちらか一方のみです。 そこで wl-beta を常用したい場合は、 ~/.emacs.d/emacs23-vine-default.el) に (setq vine-default-wl nil) を設定します。 AUCTeX と YaTeX の共存 AUCTeX, YaTeX は、それぞれ auctex, yatex パッケージにより提供されます。 どちらも TeX 入力支援環境ですが、 TeX 関連ファイルに依存するために同一環境でどちらのユーザも存在する場合に、 ファイル関連で衝突してしまいます。 システム全体での設定で対応 システム全体での設定()で対応する場合は、以下のような方法が考えられます。 システム全体での設定で AUCTeX と YaTeX に関するデフォルト設定を無効にする ユーザごとに AUCTeX または YaTeX の設定をする まず、/etc/emacs/emacs23-local.el)に (setq vine-default-auctex nil vine-default-preview-latex nil vine-default-yatex nil vine-default-yahtml nil ) を設定します。 つぎに、ユーザ初期設定ファイル ~/.emacs.d/init.el)以降に、 AUCTeX または YaTeX の設定を記述します。 例えば、やてふの設定は、 Vine Linux のデフォルト設定のまま使いたい場合、 (require 'vine-default-yatex) を記述します。 ユーザごとの設定で対応 YaTeX ユーザは、 ~/.emacs.d/emacs23-vine-default.el) に (setq vine-default-auctex nil vine-default-preview-latex nil ) を設定します。 AUCTeX ユーザは、 ~/.emacs.d/emacs23-vine-default.el) に (setq vine-default-yatex nil vine-default-yahtml nil ) を設定します。 YaTeX のデフォルトプレフィックスを従来のものに戻す YaTeX 製作者の推奨により、 YaTeX のデフォルトプレフィックスを vine-default-yatex で変更しています。 しかしながら、従来のデフォルトプレフィックスに戻したい場合は、 ~/.emacs.d/emacs23-vine-default.el) に ;; [推奨] デフォルトプレフィックスの変更 [yatex:04567] ;; だけど、頑なにデフォルトのままにする (setq YaTeX-inhibit-prefix-letter nil) を設定します。 Emacs のカスタマイズ Emacs をカスタマイズしていくには、 Emacs が持っているカスタマイズの仕組みを利用する 自分で設定ファイルに設定や関数などを書いていく という二つの方法があります。 設定ファイル ユーザ初期設定ファイル ~/.emacs.d/init.el) は、 以外の設定を自由に記述できます。 カスタマイズの仕組みを利用して設定した設定は、 デフォルトでユーザ初期設定ファイル ~/.emacs.d/init.el の末尾に追記されます。 これらの設定を別のファイルにまとめたい場合は、あらかじめ ~/.emacs.d/init.el にカスタムファイルを設定します。 例えば、以下のようにカスタムファイルを設定すると、 カスタマイズの仕組みを利用して設定した設定は、 ~/.emacs.d/custom.el に保存されます。 ;; カスタムファイルの指定 (setq custom-file "~/.emacs.d/custom.el") (if (file-exists-p (expand-file-name custom-file)) (load-file (expand-file-name custom-file))) メニューバーのオプションを利用する Emacs の外観に関する基本的な設定は、 メニューバーの [オプション] から設定できます。 いくつか設定を変更した後、 メニューバーの [オプション] → [オプションの保存] をすると、 カスタマイズの仕組みを利用して設定としてが保存されます。 例えば、 検索で大文字・小文字を区別しない [表示/非表示] -> [ツールバー] のチェックをはずす [標準フォントを設定...] から Ricty Regular 12pt を指定する のような変更をすると、以下のように デフォルトで ~/.emacs.d/init.el の末尾に、 追記されます。 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; -*- coding: utf-8-unix -*- ;; FSF Emacs 初期設定ファイル ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(case-fold-search nil) '(tool-bar-mode nil)) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(default ((t (:inherit nil :stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 120 :width normal :foundry "unknown" :family "Ricty"))))) ;; Local Variables: ;; mode: emacs-lisp ;; End: カスタマイズの仕組みを利用する メニューバーの [オプション] → [カスタマイズ] → [トップレベルグループ] を選択する、または、 M-x customize を実行すると、 のようなカスタマイズの画面になります。 TAB キーを押すことで、 アンダーラインのある部分、 ボタンになっている部分(Set for current session など)、 文字の入力が可能な部分にカーソルが移動します。 Shift+TAB でカーソルが逆方向(上)に移動します。 Enter キーで選択、確定です。 Exit を選択すると、閉じます。
カスタマイズの画面
ここで操作して設定した内容は、 デフォルトで ~/.emacs.d/init.el の末尾に、 追記されます。
なお、customize は、細分化されていて、 M-x customize の他に、 M-x customize-face, M-x customize-group, M-x customize-variable などとさまざまなものがあります。 メニューバーの [オプション] → [カスタマイズ] 内の項目を見る、 または、 M-x customize と入力して TAB キーを押して補完候補を見るとよいでしょう。 TAB の幅を設定する ここでは、M-x customize-variable を利用して、 TAB の幅 を設定してみます。 M-x customize-variable と入力し Enterキーを押します TAB キーで補完ができます。 M-x cus くらいまで入力したら、 TAB キーをおしてみてください。 M-x customize となるはずです。 さらに -v と入力して TAB キーを押すと、 M-x customize-variable と補完されます。 。 画面最下部のミニバッファに Customize variable: と表示されたら、 tab-width と入力し Enter キーを押します これも TAB キーで補完が出来ます。 のように画面が切り替わります。
emacsの customize-variable の画面
TAB キーを押して、 8 という数字が表示されているところまでカーソルを移動し、 C-d で 8 という文字を削除し、数字を入力します。 例えば、4 とすると、TAB の幅が元の幅の半分になります。
Set for current session というボタンのところまで移動し、Enter キーを押すと、 一時的に設定を有効にした状態になります。 数値は保存されないので、次回起動時には元の値 8 にもどります。 Save for future sessions のボタンで Enter キーを押すと、この数値が、 設定ファイルに書き込まれて保存され、 次回 Emacs を起動した時に利用できるようになります。 Undo edits のボタンで、 入力した数値が元にもどります。 Reset to saved のボタンで、 前回保存した時の値にもどります。 Erase customizations のボタンで、 設定した数値が取り消され、設定ファイルにあった記述も削除されます。 数値を入力し、 Set for current session のボタンを押してテストして、 適当な値になるまで customize を行うという作業を繰り返して、 それから Save for future sessions で保存するという作業をします。 ここでは、Save for future sessions で保存してしまっていいと思います。 保存したら、Exit のボタンをクリックします。 M-< でページの先頭まで戻ると早いです。 Save for future sessions で保存すると、 以下のように デフォルトで ~/.emacs.d/init.el の末尾に、 追記されます。 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(tab-width 4)) この設定値を変更する時には、直接編集するのではなく M-x customize などを使って再度設定するようにしてください。
ユーザ初期設定ファイル ~/.emacs.d/init.el などに書かれている項目を設定する場合は、 設定ファイルを直接編集するのが無難です。
複数バージョンの管理 Emacs-23.3 と Emacs-24.0.93 とのユーザ初期設定ファイルを管理するためには、 ~/.emacs.d/init.el を Emacs バージョン分岐用ファイルにする必要があります。 この節では、複数バージョンの管理に関する一例を紹介します。 複数バージョン分岐用ファイル ~/.emacs.d/init.el 以下のような ~/.emacs.d/init.el に変更すると、 Emacs-23.3, Emacs-24.0.93 のユーザ初期設定ファイルは、それぞれ ~/.emacs.d/emacs23-init.el, ~/.emacs.d/emacs24-init.el になります。 また、必要であれば、以下のようにカスタマイズによる設定を、 別ファイルに保存してもよいでしょう。 Emacs-23.3, Emacs-24.0.93 のカスタムファイルは、それぞれ ~/.emacs.d/emacs23-custom.el, ~/.emacs.d/emacs24-custom.el になります。 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; -*- coding: utf-8-unix -*- ;; FSF Emacs バージョン分岐用ファイル ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ユーザ初期設定ファイルの指定 (setq user-init-file (concat "~/.emacs.d/emacs" (number-to-string emacs-major-version) "-init.el")) ;; ;; カスタムファイルの指定 ;; (setq custom-file ;; (concat "~/.emacs.d/emacs" (number-to-string emacs-major-version) ;; "-custom.el")) (if (file-exists-p (expand-file-name user-init-file)) (load-file (expand-file-name user-init-file))) ;; (if (file-exists-p (expand-file-name custom-file)) ;; (load-file (expand-file-name custom-file))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Local Variables: ;; mode: emacs-lisp ;; End: Emacs バージョンによらずに、 共通な設定をまとめて記述しておきたい場合は、 ~/.emacs.d/init.el に直接記述するか、以下の例の ~/.emacs.d/emacs-common.el のようなファイルを設けてもよいでしょう。 ;; 個人的な設定ファイル: Emacs バージョン共通 (setq my-emacs-common-file "~/.emacs.d/emacs-common.el") (if (file-exists-p (expand-file-name my-emacs-common-file)) (load-file (expand-file-name my-emacs-common-file)))
Vine Linux 4.2 の Emacs 環境 「システム全体での設定」の課題 Vine Linux 4.2 以前の Emacs では、 Emacs Lisp の RPM パッケージに含まれていた site-start.el に Emacs Lisp の設定を記述していました。 つまり、Vine Linux 5 以降でいう 「個別の RPM パッケージに含まれている設定()」 と 「システム全体での設定()」 が分離されていませんでした。 そのため、RPM パッケージで設定されている内容を変更するために site-start.el ファイルを編集した場合、 RPM パッケージがアップデートされると再び設定を実施する必要がありました。 Vine Linux 5 以降では、 「」 と 「」 を分離することにより、この問題を解決しています。 Vine Linux 4.2 以前の ~/.emacs.my.el Vine Linux 4.2 以前におけるユーザ初期設定ファイル ~/.emacs.el には、 ユーザ用初期化ファイル ~/.emacs.my.el 個人用設定を書くためのファイルでした。 があれば、 それを読み込む仕組みがありました。 Vine Linux 5 以降では、 に移行したため、 ~/.emacs.my.el を読み込む仕組みは廃止しました。 もし過去の ~/.emacs.my.el を流用したい場合は、 以下のようにして ~/.emacs.my.el を読み込ませることができます。 (if (file-exists-p (expand-file-name "~/.emacs.my.el")) (load (expand-file-name "~/.emacs.my.el") nil t nil)) ただし、Emacs-23.3 と Emacs-22 以前は随分仕様が変わっているので、 Vine Linux 4 の Emacs-22 などで使っていた ~/.emacs.my.el をそのまま流用できるとはかぎりません。 Vine Linux 6 では、 いままでの ~/.emacs.my.el の設定を改めて、 ~/.emacs.d/init.el)以下に設定することを推奨します。 emacs-ime に設定できる値の一覧 Vine Linux 5 で emacs-ime に設定できる値は次の通りです。 ただし、現在はよく使われるもののみを記載しています。 emacs-ime に設定できる値の一覧 (抜粋) 使うIME emacs-ime に設定する値 Vine Linux 5 でのパッケージ名 Anthy (japanese-egg-anthy) LEIMを使用。 scim、SCIM、anthy、Anthy、egg-anthy、tamago-anthy tamago パッケージ Anthy (anthy-el) anthy-el、Anthy-el anthy-el パッケージ SCIM scim-bridge、scim-bridge-el scim-bridge-el パッケージ UIM uim、uim-el uim-el パッケージ UIM (japanese-anthy-utf8-uim) uim-leim ibus ibus-el、IBus-el ibus-el パッケージ Mozc (japanese-mozc) mozc、mozc-el mozc-el パッケージ SKK (Daredevil SKK) skk skk パッケージ T-Code (tc2) tc2、tc-el tc-el パッケージ ATOK iiimecf、IIIMECF、atokx、atokx2、atokx3 IIIMECF パッケージ Wnn、FreeWnn (japanese-egg-wnn) wnn、Wnn、wnn6、Wnn6、wnn8、Wnn8 tamago パッケージ wnn ななたまご (Wnn7egg) wnn7egg、wnn7、Wnn7 wnn7egg パッケージ