source: projects/vine-emacs-guide/trunk/help/vine-emacs-guide.xml @ 4601

Revision 4601, 64.9 KB checked in by munepi, 13 years ago (diff)

updated vine-emacs-guide.xml

Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
4
5<book id="emacs-guide" lang="ja">
6 <bookinfo>
7  <title>Emacs 利用ガイド</title>
8  <authorgroup>
9   <author>
10    <firstname>Munehiro</firstname>
11    <surname>Yamamoto</surname>
12   </author>
13   <editor>
14    <firstname>Masaharu</firstname>
15    <surname>Iwai</surname>
16   </editor>
17  </authorgroup>
18
19  <abstract>
20   <para>
21    Vine Linux 5 以降の Emacs(以下、Emacs は GNU Emacs を指す)環境は、
22    Vine Linux 4.2 までのそれと比べて、大幅に変更されました。
23   </para>
24   <para>
25    このドキュメントは、Vine Linux 5 以降に新しく搭載された
26    system-wide な設定および Vine Linux のデフォルト設定を中心に、
27    Vine Linux 6 の Emacs 環境を解説します。
28   </para>
29  </abstract>
30 </bookinfo>
31
32 <chapter id="emacs-basic">
33   <title>Emacs を始めよう!</title>
34   <para>
35     Emacs の起動画面を使いながら、Emacs の基本事項や基本操作を説明します。
36   </para>
37
38   <note>
39     <para>
40       とくに断りがないかぎり、本ガイドの Emacs は、
41       Emacs-23.3 を用いているものとします。
42       Emacs-24.0.50 を利用する場合には、適切に読み替えてください。
43     </para>
44   </note>
45
46   <sect1 id="emacs-install">
47     <title>Emacs をインストール</title>
48     <para>
49       Vine Linux 6 の Emacs は、Emacs-23.3 と Emacs-24.0.50 が用意されています。
50       Emacs-23.3, Emacs-24.0.50 は、
51       それぞれ emacs, emacs24 パッケージをインストールすることで、
52       利用できます。
53       <itemizedlist>
54         <listitem>
55           <para>
56             Emacs-23.3
57             <screen>$ sudo apt-get install emacs</screen>
58           </para>
59         </listitem>
60         <listitem>
61           <para>
62             Emacs-24.0.50
63             <screen>$ sudo apt-get install emacs24</screen>
64           </para>
65         </listitem>
66       </itemizedlist>
67     </para>
68   </sect1>
69
70   <sect1 id="emacs-startup-screenshot">
71     <title>Emacs を起動</title>
72     <para>
73       ToDo: Emacs 23.X の起動画面をスクリーンショットする。
74       メニューからバッファ、ミニバッファなどの説明を図説する。
75     </para>
76
77     <figure id="fig-emacs-splashscreen">
78       <title>Emacsの起動画面</title>
79       <graphic fileref="figures/emacs-splashscreen.png" />
80     </figure>
81
82   </sect1>
83   
84   <sect1 id="emacs-buffer">
85     <title>バッファ</title>
86     <para>Emacs では、編集中の文書はバッファと呼ばれるメモリ領域に読み込まれ、このバッファの内容に対して書き込みや修正を行います。ファイルに保存する命令を実行した時にはじめて、バッファの内容はディスク上のファイルに書き込まれます。</para>
87     <para>バッファの内容はウィンドウに表示されます。ウィンドウは複数用意することができ、そこに複数のバッファの内容や、同じバッファの違う部分を表示して編集を行うことができます。</para>
88     <para>バッファの編集状況等の情報は、ウィンドウの最下部のモードラインに表示されます。</para>
89     
90     <note><title>ウィンドウという言葉について</title>
91     <para>一般的な「ウィンドウ」という言葉と、emacs での「ウィンドウ」は異なります。</para>
92     <para>一般的なウィンドウは emacs ではフレームといい、一つのフレームの中を分割したものをウィンドウと呼びます。</para>
93     <!--para>下の図では、フレームが一つで、ウィンドウが二つあります。</para>
94         
95         <figure id="emacs-frame-and-window">
96         <title>emacsのフレームとウィンドウ</title>
97         <graphic fileref="figures/emacs-window.png" />
98         </figure-->
99     </note>
100     
101   </sect1>
102
103   <sect1 id="emacs-entry">
104     <title>文字入力</title>
105     <para>
106       ウィンドウにカーソルがある時、キーボードから入力した文字はカーソル位置に挿入され、カーソルが進みます。日本語を入力する時には、'C-\'で日本語切替えモードになります。 もう一度'C-\'を押すとアルファベットの入力モードに戻ります。
107     </para>
108     <para>
109       日本語入力システムについては、<ulink url="ghelp:vine-desktop-guide">デスクトップユーザーズガイド</ulink><ulink url="ghelp:vine-desktop-guide?input-ja">GUI環境での日本語入力</ulink>を参照して下さい。
110     </para>
111
112     <para>
113       TABキーを押すと行のインデントの調整となってしまい、TAB文字を入力出来ないことがあります。そのような時には、C-q TAB のように、C-q のあとでキーを押してください。
114     </para>
115
116     <para>
117       また、C-q C-j とすると、改行記号を入力できます。Enter キーの代わりに利用することで、<xref linkend="emacs-search" /> などの時に改行を含んだ文字列を扱うことができます。
118     </para>
119   </sect1>
120
121   <sect1 id="emacs-cursol">
122     <title>カーソル移動</title>
123     <para>
124       編集中のカーソルの移動は矢印キーの他、以下のようなキーで移動できます。
125     </para>
126     <table id="keybind-for-move-cursor">
127       <title>カーソル移動</title>
128       <tgroup cols="2">
129         <thead>
130           <row><entry>キー操作</entry><entry>意味</entry></row>
131         </thead>
132         <tbody>
133           <row><entry>C-b または ←</entry><entry>一文字左へ </entry></row>
134           <row><entry>C-f または →</entry><entry>一文字右へ</entry></row>
135           <row><entry>C-p または ↑</entry><entry>一文字上へ</entry></row>
136           <row><entry>C-n または ↓</entry><entry>一文字下へ</entry></row>
137           <row><entry>C-v または PgDn</entry><entry>次の画面に進む</entry></row>
138           <row><entry>M-v または PgUp</entry><entry>前の画面に戻る</entry></row>
139           <row><entry>C-d</entry><entry>カーソル位置の文字を削除</entry></row>
140           <row><entry>C-k</entry><entry>カーソル位置から行末までの文字を削除</entry></row>
141           <row><entry>C-e</entry><entry>行の一番右へ</entry></row>
142           <row><entry>C-a</entry><entry>行の一番左へ</entry></row>
143           <row><entry>M-f</entry><entry>一単語右へ</entry></row>
144           <row><entry>M-b</entry><entry>一単語左へ</entry></row>
145           <!--row><entry>M-g &lt;行番号&gt;</entry><entry>指定行へ移動 (xemacsのみ)</entry></row-->
146           <row><entry>M-x goto-line</entry><entry>指定行へ移動</entry></row>
147           <row><entry>C-space または C-@</entry><entry>現在のカーソル位置にマークをつけ記憶させる</entry></row>
148           <row><entry>C-x C-x</entry><entry>現在のカーソル位置にマークをつけ、前回マークをつけた位置まで戻る(繰り返すと二点を交互に行き来します)</entry></row>
149         </tbody>
150       </tgroup>
151     </table>
152   </sect1>
153
154   <sect1 id="emacs-delete">
155     <title>文字削除</title>
156     <para>
157       カーソル位置の文字の削除は C-d を用います。その他単語の削除や行末の削除等のキーもあります。
158     </para>
159     <table id="keybind-for-delete-characters">
160       <title>文字削除</title>
161       <tgroup cols="2">
162         <thead>
163           <row><entry>キー操作</entry><entry>意味</entry></row>
164         </thead>
165         <tbody>
166           <row><entry>C-d</entry><entry>カーソル位置の文字を削除</entry></row>
167           <row><entry>M-d</entry><entry>カーソル位置から一単語削除</entry></row>
168           <row><entry>C-k</entry><entry>カーソル位置から行末までの文字を削除</entry></row>
169           <row><entry>M-k</entry><entry>カーソル位置から文末までの文字を削除</entry></row>
170         </tbody>
171       </tgroup>
172     </table>
173   </sect1>
174
175   <sect1 id="emacs-search">
176     <title>文字列検索・置換</title>
177     <para>
178       カーソル行以降の文字列検索には、C-s を用います。C-s を入力するとミニバッファに
179       <screen>I-search:</screen>
180     と表示されるので、検索したい文字列を入力して下さい。検索の終了は C-g を押します。
181     </para>
182     <para>
183       一度入力した文字列を続けて検索したい時には、C-s を続けて2回押します。C-s の代わりに C-r を用いるとカーソル位置より前にある検索文字列を表示します。日本語の文字列を検索する場合<footnote><para>migemoという便利なツールがあります。<xref linkend="dot.emacs.my.el" />を参照してください。</para></footnote>は、C-sの後にEnterを押してから、C-\;でかな漢字変換モードにしてから入力して下さい。
184     </para>
185     <para>
186       確認付きの文字列の置換を行うには M-% を用います。M-% を入力すると
187       <screen>Query-replace:</screen>
188       とミニバッファに表示されますので、まず置換したい文字列を入力します。例えば, C言語プログラムでint を long にしたいときには、M-%の後に int と入力し、Enterキーを押します。ミニバッファの表示が以下のように代わるので、ここで long を入力し, Enterキーを押します。
189     </para>
190     <screen>Query-replace int with: long</screen>
191     <para>
192       置換する文字列 int があるとそこで、以下のように表示されます。
193     </para>
194     <screen>Query-replace int with long: (? for help)</screen>
195     <para>
196       ここで、スペースキーか'y'を押せば置換が行われ、'n'を押すと置換は行わず、次の候補に移動します。終了するときには、Enterキーか'q'を入力します。上に表示されている通り '?' を入力すればコマンドのリストが表示されます。
197     </para>
198     <para>
199       文字列の置換を確認なしに一括して行いたいときには、まず一括置換を開始したい場所にカーソルを移動し、M-x を押します。このとき、ミニバッファの表示は以下のようになります。
200     </para>
201     <screen>M-x</screen>
202     <para>
203       ここで、<userinput>replace-string</userinput> と入力し、<keycap>Enter</keycap>キーを押します。
204     </para>
205     <screen>M-x replace-string</screen>
206     <para>
207       その後は、確認のある場合の文字列置換の場合と同様に、置換のための文字列を入力すれば、一括置換が行われます。
208     </para>
209     <para>
210       emacs には replace-string の他、非常にたくさんのコマンドがあり、M-x は、このコマンドを入力するのに使われます。コマンドの名前はTabキーで補完しながら入力することができます。候補のコマンドが複数あるときには、候補一覧が表示されます。
211     </para>
212     <table id="keybind-for-search-and-replace">
213       <title>文字列検索・置換</title>
214       <tgroup cols="2">
215         <thead>
216           <row><entry>キー操作</entry><entry>意味</entry></row>
217         </thead>
218         <tbody>
219           <row><entry>C-s</entry><entry>文字検索 (カーソル行以降で検索)</entry></row>
220           <row><entry>C-r</entry><entry>文字検索 (カーソル行より前で検索)</entry></row>
221           <row><entry>M-%</entry><entry>文字列置換(確認あり)</entry></row>
222           <row><entry>M-x replace-string</entry><entry>文字列置換(確認なし)</entry></row>
223         </tbody>
224       </tgroup>
225     </table>
226   </sect1>
227   
228   <sect1 id="emacs-undo">
229     <title>アンドゥ (取消)</title>
230     <para>実行したコマンドを取り消して、バッファを元の状態に戻すには、C-x u (または C-_ )を用います。連続して C-x u を用いると、実行した回数だけ前の状態に戻ります。</para>
231     <table id="keybind-for-undo">
232       <title>アンドゥ (取消)</title>
233       <tgroup cols="2">
234         <thead>
235           <row><entry>キー操作</entry><entry>意味</entry></row>
236         </thead>
237         <tbody>
238           <row><entry>C-x u または C-_</entry><entry>アンドゥ(実行したコマンドの取消)</entry></row>
239         </tbody>
240       </tgroup>
241     </table>
242   </sect1>
243
244   <sect1 id="emacs-edit">
245     <title>カット/コピー/ペースト</title>
246     <para>編集中のバッファの一部分を別の場所にコピーするには以下のような手順で行います。</para>
247     <orderedlist>
248       <listitem><para>コピーしたい部分の先頭にカーソルを移動します。</para></listitem>
249       <listitem><para>C-Space (または C-@)を入力します(これで現在のカーソルの位置が記憶されます)。</para></listitem>
250       <listitem><para>コピーしたい部分の終りまたは始めにカーソルを移動します。</para></listitem>
251       <listitem><para>M-w を押す(これで先頭位置(C-Spaceを押した位置)からこの終りの部分までが記憶されます。この部分をリージョン(region:領域)と呼びます。)</para></listitem>
252       <listitem><para>コピー先にカーソルを移動します。</para></listitem>
253       <listitem><para>C-y を入力します。これでペースト(Emacsではyank(ヤンク)といいます)完了です。</para></listitem>
254     </orderedlist>
255     <para>一部分を削除したい時には、上のコピーの手続きで、M-w を入力するかわりに、C-w を入力すれば、設定したリージョンは削除され、記憶されます。</para>
256     <para>一部分を移動したい時には、上の手続きで削除を行った後、移動先へカーソルを持って行きコピーの場合と同様に C-y を入力すれば、記憶されているリージョンがそこに出力されます。</para>
257     
258     <table id="keybind-for-kill-and-yank">
259       <title>カット/コピー/ペースト</title>
260       <tgroup cols="2">
261         <thead>
262           <row><entry>キー操作</entry><entry>意味</entry></row>
263         </thead>
264         <tbody>
265           <row><entry>C-space または C-@</entry><entry>始点のマーク</entry></row>
266           <row><entry>M-w</entry><entry>始点から現在のカーソル位置までを記憶(コピー)</entry></row>
267           <row><entry>C-w</entry><entry>始点から現在のカーソル位置までを削除して記憶(カット)</entry></row>
268           <row><entry>C-y</entry><entry>記憶内容をカーソル位置に貼付け(ペースト)</entry></row>
269         </tbody>
270       </tgroup>
271     </table>
272   </sect1>
273
274   <sect1 id="emacs-window">
275     <title>ウィンドウ操作</title>
276     <para>複数のファイルを編集する場合には、ウィンドウを複数開いて、各ウィンドウに、同じバッファの異なる位置を表示したり、複数のバッファを表示したりして編集することができます。</para>
277     <para>例えば C-x 2 を入力するとカーソルのあるウィンドウが上下2つに分割されます。もとの通り分割されたウィンドウを一つに戻すには、C-x 1 を入力すれば、カーソルのあるほうのウィンドウのみの表示になります。分割したウィンドウ間のカーソル移動には C-x o を用います。分割したウィンドウの境界はマウスでドラッグすれば移動することもできます。</para>
278     <para>また、C-x 5 2 を入力すると、新しいフレーム(参照<xref linkend="emacs-buffer" />)がつくられます。複数のフレーム間のカーソル移動には C-x 5 o を用います。</para>
279     <para>現在のウィンドウに表示するバッファを変更したい時には C-x b を入力すると, 以下のように表示されます。</para>
280     <screen>Switch to buffer: (default test.txt)</screen>
281     <para>ここで、ウィンドウに表示したいバッファ名を入力し、Enterキーを押せば表示バッファが切り替わります。ここで、候補のバッファの一つが上のように default の後ろに表示されます。この候補でよいときには単にEnterキーを押して下さい。</para>
282     <table id="keybind-for-window-and-frame">
283       <title>ウィンドウ操作</title>
284       <tgroup cols="2">
285         <thead>
286           <row><entry>キー操作</entry><entry>意味</entry></row>
287         </thead>
288         <tbody>
289           <row><entry>C-x 2</entry><entry>ウィンドウを上下に分割</entry></row>
290           <row><entry>C-x 3</entry><entry>ウィンドウを左右に分割</entry></row>
291           <row><entry>C-x o</entry><entry>分割したウィンドウ間をカーソル移動</entry></row>
292           <row><entry>C-x 0</entry><entry>分割したウィンドウのうちカーソルのあるほうを閉じる</entry></row>
293           <row><entry>C-x 1</entry><entry>分割したウィンドウのうちカーソルの無いほうを閉じる</entry></row>
294           <row><entry>C-x +</entry><entry>分割したウィンドウの高さ、幅を均等にする</entry></row>
295           <row><entry>C-x 5 2</entry><entry>新しいフレームを開く</entry></row>
296           <row><entry>C-x 5 o</entry><entry>フレーム間でカーソル移動</entry></row>
297           <row><entry>C-x 5 0</entry><entry>カーソルのあるフレームを閉じる</entry></row>
298           <row><entry>C-x b</entry><entry>現在のウィンドウに表示するバッファを指定する</entry></row>
299         </tbody>
300       </tgroup>
301     </table>
302   </sect1>
303
304   <sect1 id="emacs-filelist">
305     <title>ファイル一覧ウィンドウでの操作</title>
306     <para>C-x C-b で編集中のバッファの一覧が表示されます。この一覧表示をしてるウィンドウに C-x o で移動すると、各バッファについていろいな操作を行えます。カーソルの移動は、編集時と同様に C-n, C-p なども使えますが、この一覧表示のバッファでは単に n や p でも移動できます。</para>
307     <para>ウィンドウに表示したいバッファ名の位置にカーソルを移動し、1 を入力するとウィンドウにはそのバッファの内容が表示されます。その他、削除マークや保存マーク等をつけて、一括して削除や保存と言った作業も行えます。できる操作の一覧は「?」で表示されます。</para>
308     <table id="keybind-for-buffer-menu">
309       <title>ファイル一覧ウィンドウでの操作</title>
310       <tgroup cols="2">
311         <thead>
312           <row><entry>キー操作</entry><entry>意味</entry></row>
313         </thead>
314         <tbody>
315           <row><entry>n</entry><entry>カーソルを次の行へ進める</entry></row>
316           <row><entry>p</entry><entry>カーソルを前の行へ戻す</entry></row>
317           <row><entry>1</entry><entry>カーソル行のバッファを現在のウィンドウいっぱいに表示する</entry></row>
318           <row><entry>f</entry><entry>カーソル行のバッファを現在のウィンドウに表示する</entry></row>
319           <row><entry>d</entry><entry>カーソル行のバッファに削除マークをつける</entry></row>
320           <row><entry>s</entry><entry>カーソル行のバッファに保存マークをつける</entry></row>
321           <row><entry>x</entry><entry>削除マークのあるバッファを削除し、保存マークのあるバッファをファイルに保存する</entry></row>
322           <row><entry>u</entry><entry>バッファについているマークを消します。</entry></row>
323         </tbody>
324       </tgroup>
325     </table>
326   </sect1>
327
328 </chapter>
329
330 <chapter id="vine6-emacs">
331   <title>Vine Linux 6 の Emacs 環境</title>
332   <para>
333     Vine Linux 6 の Emacs 環境は、
334     Vine Linux 5 で一新された Emacs 環境から、
335     さらに利便性の改善をはかりました。
336     Vine Linux 4.2 以前の Emacs 環境(<xref linkend="vine4-emacs" />)では、
337     システム全体での設定(<xref linkend="system-wide-configuration" />)を
338     RPM パッケージに含まれている設定と異なるものにする場合、
339     その RPM パッケージがアップデートされるたびに修正する必要がありました。
340   </para>
341   <para>
342     Vine Linux 5 で導入された仕組みにより、
343     個別の RPM パッケージに含まれている設定(<xref linkend="distribution-wide-configuration" />)と
344     システム全体での設定(<xref linkend="system-wide-configuration" />)を別のファイルに記述するようになりました。
345     システム全体での設定(<xref linkend="system-wide-configuration" />)を変更していた場合、
346     RPM パッケージをアップデートしても内容をそのまま保持するようになっています。
347   </para>
348   <para>
349     Vine Linux 6 では、次の順で設定が読み込まれます。
350   </para>
351   <orderedlist>
352     <listitem>
353       <para>
354         個別の RPM パッケージでの設定(<xref linkend="distribution-wide-configuration" />
355     </para>
356     </listitem>
357     <listitem>
358       <para>
359         システム全体での設定(<xref linkend="system-wide-configuration" />
360       </para>
361     </listitem>
362     <listitem>
363       <para>
364         <xref linkend="per-user-configuration" />
365       </para>
366     </listitem>
367   </orderedlist>
368   <para>
369     同一の設定項目について、それぞれで設定している場合は、
370     後から読み込まれる設定が有効となります。
371     また、システム全体での設定(<xref linkend="system-wide-configuration" />)は、
372     RPM パッケージのアップデートで置き換えられてしまうことがありません。
373     そのため、個別の RPM パッケージでの設定(<xref linkend="distribution-wide-configuration" />)を
374     <xref linkend="system-wide-configuration" /> で上書きできます。
375   </para>
376
377   <sect1 id="distribution-wide-configuration">
378     <title>distribution-wide な設定</title>
379     <para>
380       <xref linkend="vine-default" /> の導入により、
381       システム標準の設定を、
382       個別の RPM パッケージごとに設定しています。
383       これにより、ユーザは何も設定を記述しなくても、
384       elisp アプリケーションがある程度、使えるようになっています。
385       詳しくは、<xref linkend="vine-default-framework" /> を参照してください。
386     </para>
387   </sect1>
388
389  <sect1 id="system-wide-configuration">
390    <title>system-wide な設定</title>
391    <para>
392      Vine Linux 5 以降の Emacs では、
393      従来よりもシステム全体の設定をより記述しやすくなりました。
394    </para> 
395    <para>
396      system-wide な設定ファイルは、
397      <filename>/etc/emacs/emacs23-local.el</filename><xref linkend="fig-emacs23-local-el" />
398      に配置されています。
399      Emacs-23.3 を起動したとき、
400      もし <filename>/etc/emacs/emacs23-local.el</filename> が存在すれば、
401      <filename>site-start.el</filename> の一番最後に読み込まれます。
402      したがって、<xref linkend="distribution-wide-configuration" /> よりも
403      <filename>emacs23-local.el</filename> が優先されます。
404
405      <figure id="fig-emacs23-local-el">
406        <title>/etc/emacs/emacs23-local.el</title>
407        <screen>
408;;
409;; GNU Emacs 23.3 local configuration file
410;;
411;; This configuration is read at the end of site-start.el.
412;; Emacs configuration files are read
413;;   - distribution wide from site-start.el
414;;   - system wide from this configuration file
415;;   - per user from ~/.emacs.d/init.el,
416;; where per user settings override system wide settings,
417;; and system wide settings override site-start.el.
418
419;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
420
421
422
423
424
425;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
426
427;; Local Variables:
428;; mode: emacs-lisp
429;; End:
430        </screen>
431      </figure>
432    </para>
433  </sect1>
434
435  <sect1 id="per-user-configuration">
436    <title>ユーザごとの設定</title>
437    <para>
438      vine-default 設定ファイル
439      <filename>~/.emacs.d/emacs23-vine-default.el</filename><xref linkend="fig-emacs23-vine-default-el" />
440      および
441      ユーザ初期設定ファイル
442      <filename>~/.emacs.d/init.el</filename><xref linkend="fig-init-el" />
443      から構成されます。
444      詳しくは、<xref linkend="vine-default" /> を参照してください。
445    </para>
446
447    <sect2>
448      <title>vine-default 設定ファイル</title>
449      <para>
450        vine-default 設定ファイルには、
451        <xref linkend="distribution-wide-configuration" />
452        により個別の RPM パッケージごとに設定された vine-default
453        を制御するための設定を記述できます。
454
455        <figure id="fig-emacs23-vine-default-el">
456          <title>~/.emacs.d/emacs23-vine-default.el</title>
457          <screen>
458;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
459;;  -*- coding: utf-8-unix -*-
460;;  FSF Emacs 23 用 vine-default 設定ファイル
461;;   
462;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
463
464;; Vine Linux のデフォルト設定を無効にしたい場合は、
465;; 以下を有効にしてください。
466;; (setq vine-default nil)
467
468;; 環境変数 EMACS_IME と異なる IME を使いたい場合は、
469;; 以下を有効にして設定することができます。
470;; (setq emacs-ime "atokx3");; anthy-el atokx3 ibus-el mozc tamago scim scim-bridge skk wnn7egg
471
472;; マクロサーチパスの追加
473;; 例えば、~/.emacs.d/local 以下にユーザ用の *.el, *.elc を置けます。
474;; (add-to-list 'load-path "~/.emacs.d/local")
475;; (add-to-list 'load-path "~/lib/emacs")
476;; (add-to-list 'load-path "~/.emacs.d/auto-install")
477
478
479;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
480
481;; Local Variables:
482;; mode: emacs-lisp
483;; End:
484          </screen>
485        </figure>
486
487      </para>
488    </sect2>
489
490    <sect2>
491      <title>ユーザ初期設定ファイル</title>
492      <para>
493        ユーザ初期設定ファイルには、
494        Emacs に関わる設定を自由に記述できます。
495
496        <figure id="fig-init-el">
497          <title>~/.emacs.d/init.el</title>
498          <screen>
499;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
500;;  -*- coding: utf-8-unix -*-
501;;  FSF Emacs 初期設定ファイル
502;;   
503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
504
505
506
507
508
509;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
510
511;; Local Variables:
512;; mode: emacs-lisp
513;; End:
514          </screen>
515        </figure>
516
517        <important>
518          <title>デフォルトのユーザ初期設定ファイルを変更しました!</title>
519          <para>
520            Vine Linux 6 では、デフォルトのユーザ初期設定ファイルとして、
521            <filename>${HOME}/.emacs.d/init.el</filename> を推奨します。
522          </para>
523          <para>
524            Emacs は通常、
525            <filename>~/.emacs</filename>,
526            <filename>~/.emacs.el</filename>,
527            <filename>~/.emacs.d/init.el</filename> の順番に探し、
528            一番最初に見つけたファイルを
529            「デフォルトのユーザ初期設定ファイル」とする挙動をします。
530            したがいまして、Vine Linux 6 の Emacs においても、
531            従来の <filename>~/.emacs.el</filename> を
532            「デフォルトのユーザ初期設定ファイル」として利用することもできますが、
533            推奨しません。
534          </para>
535        </important>
536
537      </para>
538
539    </sect2>
540
541  </sect1>
542
543 </chapter>
544
545 <chapter id="vine-default">
546   <title>Vine Linux のデフォルト設定:vine-default</title>
547   <para>
548     Vine Linux の Emacs では、
549     Emacs 上で動作するアプリケーションの
550     RPM パッケージに初期設定が含まれています(<xref linkend="distribution-wide-configuration" />)。
551     そのため、
552     ユーザ初期設定ファイル
553     <filename>~/.emacs.d/init.el</filename><xref linkend="fig-init-el" />
554     に何も設定を記述しなくても、
555     elisp アプリケーションがある程度使えるようになっています。
556     この Emacs における Vine Linux のデフォルト設定を
557     <emphasis>vine-default</emphasis> と呼んでいます。
558   </para>
559
560   <sect1 id="vine-default-usage">
561     <title>使い方</title>
562     <para>
563       vine-default は、
564       /usr/share/emacs-23.3/site-lisp 以下に格納されています。
565       <itemizedlist>
566         <listitem>
567           <para>
568             vine-default-base.el:Emacs の基本的な設定
569           </para>
570         </listitem>
571         <listitem>
572           <para>
573             vine-default-faces.el:Emacs のフォントやカラーの設定
574           </para>
575         </listitem>
576         <listitem>
577           <para>
578             <emphasis>package</emphasis>/vine-default-<emphasis>package</emphasis>.el:<emphasis>package</emphasis> の設定
579           </para>
580         </listitem>
581       </itemizedlist>
582     </para>
583
584   <para>
585    Emacs を起動すると、
586    デフォルトで vine-default の boolean が t になっているので、
587    vine-default を読み込みます。
588   </para>
589
590   <sect2>
591     <title>vine-default をすべて無効にする</title>
592     <para>
593       もし vine-default をすべて無効にしたい場合は、
594       <filename>~/.emacs.d/emacs23-vine-default.el</filename><xref linkend="fig-emacs23-vine-default-el" />
595       に
596       <screen>(setq vine-default nil)</screen>
597       を設定します。
598       この場合は、メニューバーと言語ロケール以外は何も設定されていません。
599     </para>
600   </sect2>
601
602   <sect2>
603     <title>一部の vine-default を無効にする</title>
604     <para>
605       vine-default のうち、いくつかの設定を無効にすることができます。
606       各 vine-default は、vine-default-<emphasis>name</emphasis> の
607       boolean が定義されていて、
608       デフォルトでは t になっています。
609     </para>
610
611     <para>
612       例えば、
613       vine-default-base,
614       vine-default-faces,
615       vine-default-yatex,
616       vine-default-mew
617       を無効にしたい場合は、
618       <filename>~/.emacs.d/emacs23-vine-default.el</filename><xref linkend="fig-emacs23-vine-default-el" />
619       に
620       <screen>
621(setq vine-default-base nil
622      vine-default-faces nil
623      vine-default-yatex nil
624      vine-default-mew nil
625    )
626       </screen>
627       を設定します。
628     </para>
629   </sect2>
630
631   <sect2>
632     <title>一部の vine-default だけを有効にする</title>
633     <para>
634       いくつかの Emacs Lisp パッケージのみを有効にしたいときは、
635       一旦すべての vine-default を無効にした上で、
636       いくつかの vine-default を有効にしてください。
637     </para>
638
639     <para>
640       例えば、
641       vine-default.yatex,
642       vine-default-tamago
643       のみを有効にしたい場合は、
644       まず、
645       <filename>~/.emacs.d/emacs23-vine-default.el</filename><xref linkend="fig-emacs23-vine-default-el" />
646       に
647       <screen>(setq vine-default nil)</screen>
648       を設定します。つぎに、
649       <filename>~/.emacs.d/init.el</filename><xref linkend="fig-init-el" />
650       の然るべきところに
651       <screen>(require 'vine-default-yatex)</screen>
652       と
653       <screen>(require 'vine-default-tamago)</screen>
654       を設定します。
655     </para>
656   </sect2>
657
658   </sect1>
659
660  <sect1 id="show-vine-default">
661   <title>インストールされている vine-default の設定を閲覧</title>
662
663   <para>
664    Emacs 上からインストールされている
665    elisp パッケージにあらかじめ設定されている
666    vine-default の設定を閲覧できます。
667   </para>
668
669   <para>
670    Emacs 上で
671    <screen>M-x show-vine-default</screen>
672    を実行すると、
673    起動している Emacs のバージョンに対応した
674    vine-default の設定を閲覧できます。
675   </para>
676
677   <note>
678     <para>
679       <command>M-x show-vine-default</command> 
680       で表示される vine-default の設定は、
681       インストールされている vine-default の設定をすべて表示します。
682       したがいまして、
683       ある vine-default-<emphasis>package</emphasis> 
684       の設定を無効にしていたとしても、
685       その設定は、
686       <command>M-x show-vine-default</command> 
687       で表示される設定の中にも現れます。
688     </para>
689   </note>
690
691  </sect1>
692 
693  <sect1 id="emacs-ime">
694    <title>IME</title>
695    <para>
696      Emacs 上におけるデフォルトの IME は、
697      X 上におけるそれと連動して、
698      <command>setime</command> 
699      コマンドなどで設定される環境変数 EMACS_IME で決定されます<footnote>
700      <para>
701        Vine Linux 6 の初期設定では、各ユーザのホームディレクトリに作成される
702        <filename>~/.Xresources</filename> で
703        <varname>Emacs*useXIM</varname> の値として
704        <literal>false</literal>が設定されているため、XIMは使われません。
705      </para>
706      </footnote><footnote>
707      <para>
708        Vine Linux 5 での初期設定では、
709        tamago パッケージがインストールされている場合は
710        tamago の Anthy インタフェースが使われます。
711        tamago パッケージをインストールしていない場合は
712        emacs パッケージに同梱されている
713        LEIM (Library of Emacs Input Method) が使われます。
714        LEIM では Vine Linux 5 標準のかな漢字変換システム Anthy を使いませんので、
715        変換効率が低くなってしまいます。
716      </para>
717      </footnote>
718   </para>
719
720   <para>
721     環境変数 <varname>EMACS_IME</varname> と異なる IME を使いたい場合は、
722     <filename>~/.emacs.d/emacs23-vine-default.el</filename><xref linkend="fig-emacs23-vine-default-el" />
723     で <varname>emacs-ime</varname> の値に指定してください。
724     anthy-el パッケージに含まれる
725     <filename>anthy.el</filename> を使うときは、次のように設定します<footnote>
726     <para>
727       指定する値は<xref linkend="emacs-ime-list"/>を参照してください。
728     </para>
729     </footnote>
730     <screen>(setq emacs-ime "anthy-el")</screen>
731   </para>
732  </sect1>
733
734  <sect1 id="vine-default-framework">
735    <title>vine-default の仕組み</title>
736    <para>
737      vine-default は、以下のようにして
738      Vine Linux のデフォルト設定が読み込まれます。
739     
740      <orderedlist>
741        <listitem>
742          <para>
743            それぞれの elisp アプリケーションの初期設定ファイル
744            <filename>/etc/emacs-23.3/site-start.d/*-init.el</filename> 
745            を然るべき順序で読み込む
746          </para>
747        </listitem>
748        <listitem>
749          <para>
750            vine-default-setup-hook に、
751            各 elisp アプリケーションの
752            vine-default-<emphasis>package</emphasis> 
753            を然るべき順序でひっかけておく
754          </para>
755        </listitem>
756        <listitem>
757          <para>
758            <filename>~/.emacs.d/emacs23-vine-default.el</filename><xref linkend="fig-emacs23-vine-default-el" />
759            を参照して、それぞれの
760            vine-default-<emphasis>package</emphasis> 
761            の挙動がきまる
762          </para>
763        </listitem>
764        <listitem>
765          <para>
766            vine-default-setup を実行することで、
767            vine-default-setup-hook にひっかけていた
768            vine-default-<emphasis>package</emphasis> が
769            <filename>~/.emacs.d/emacs23-vine-default.el</filename><xref linkend="fig-emacs23-vine-default-el" />
770            に応じて、読み込まれる。
771          </para>
772        </listitem>
773      </orderedlist>
774
775      実際に、以下のような順序で vine-default に関するファイルを読み込み、
776      vine-default を実行します。
777      <orderedlist>
778        <listitem>
779          <para>
780            <filename>/usr/share/emacs-23.3/site-lisp/site-start.el</filename>
781          </para>
782        </listitem>
783        <listitem>
784          <para>
785            <filename>/etc/emacs-23.3/site-start.d/XXpackage-init.el</filename> (X ∈ {0, 1, 2,..., 9})
786          </para>
787        </listitem>
788        <listitem>
789          <para>
790            <filename>/etc/emacs/emacs23-local.el</filename>
791          </para>
792        </listitem>
793        <listitem>
794          <para>
795            vine-default 用設定ファイル
796            <filename>${HOME}/.emacs.d/emacs23-vine-default.el</filename>
797          </para>
798        </listitem>
799        <listitem>
800          <para>
801            <command>vine-default-setup</command> を実行:
802            <filename>/usr/share/emacs-23.3/site-lisp/</filename> 以下の
803            <itemizedlist>
804              <listitem>
805                <para>
806                  <filename>vine-default-base.el</filename>,
807                  <filename>vine-default-faces.el</filename>
808                </para>
809              </listitem>
810              <listitem>
811                <para>
812                  <filename>package/vine-default-package.el</filename>
813                </para>
814              </listitem>
815            </itemizedlist>
816          </para>
817        </listitem>
818        <listitem>
819          <para>
820            デフォルトのユーザ初期設定ファイル
821            <filename>${HOME}/.emacs.d/init.el</filename>
822          </para>
823        </listitem>
824      </orderedlist>
825
826      <important id="vine-default-framework-diff-vine5-vine6">
827        <title>Vine Linux 5 から Vine Linux 6 への変更</title>
828        <para>
829          Vine Linux 6 の vine-default の仕組みは、
830          Vine Linux 5 の vine-default からいくつか改良しました。
831          主な変更点は、以下のようになります。
832          <itemizedlist>
833            <listitem>
834              <para>
835                vine-default を呼ぶタイミングを改善するときに、
836                vine-default 設定ファイル
837                <filename>~/.emacs.d/emacs23-vine-default.el</filename><xref linkend="fig-emacs23-vine-default-el" />
838                を設けました。
839                これにより、ユーザ自身の Emacs に関する設定から
840                vine-default に関する設定のみを分離できます。
841              </para>
842            </listitem>
843            <listitem>
844              <para>
845                vine-default を呼ぶタイミングを改善したことにより、
846                after-vine-default-setup-hook を廃止しました。
847                これにより、vine-default に関する設定が、
848                ユーザ初期設定ファイル
849                <filename>~/.emacs.d/init.el</filename><xref linkend="fig-init-el" />
850                に混在しません。
851              </para>
852            </listitem>
853            <listitem>
854              <para>
855                システム全体での設定(<xref linkend="system-wide-configuration" />)を担う設定ファイル名が
856                <filename>/etc/emacs/emacs-23-local.el</filename> 
857                から
858                <filename>/etc/emacs/emacs23-local.el</filename> 
859                へ変更
860              </para>
861            </listitem>
862          </itemizedlist>
863        </para>
864      </important>
865     
866    </para>
867
868    <sect2 id="vine-default-framework-site-start-el">
869      <title>vine-default に関する関数とフック</title>
870      <para>
871        具体的には、
872        <filename>/usr/share/emacs-23.3/site-lisp/site-start.el</filename> 
873        に、以下のような関数とフックを定義しています。
874        <screen>
875(defcustom vine-default t
876  "A boolean for all Vine Linux default settings"
877  :type 'boolean)
878(if (equal (getenv "LOGNAME") "root")
879    (setq vine-default nil))
880
881(defcustom vine-default-base t
882  "A boolean for vine-default-base"
883  :type 'boolean)
884
885(defcustom vine-default-faces t
886  "A boolean for vine-default-faces"
887  :type 'boolean)
888
889(defvar vine-default-setup-hook nil
890  "List of functions to be called at vine-default-setup")
891
892(defun vine-default-setup ()
893  "A function for setup to default configurations of Vine Linux"
894  (when vine-default
895    (message "Starting vine-default-setup ...")
896    (when vine-default-base
897      (message "Loading vine-default-base ...")
898      (require 'vine-default-base))
899    (when vine-default-faces
900      (message "Loading vine-default-faces ...")
901      (require 'vine-default-faces))
902    (run-hooks 'vine-default-setup-hook)
903    ;; (run-hooks 'after-vine-default-setup-hook); obsolete
904    )
905  )
906
907;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
908
909;;; run functions from the /etc/emacs-23.3/site-start.d directory
910;;; Files in this directory ending with ".el" are run on startup
911(mapc 'load (directory-files "/etc/emacs-23.3/site-start.d" t "\\.el\\'"))
912
913;;; load local configuration
914(if (file-exists-p (expand-file-name "/etc/emacs/emacs23-local.el"))
915    (load (expand-file-name "/etc/emacs/emacs23-local.el")))
916
917;;; load vine-default configuration per user before vine-default-setup
918(if (file-exists-p (expand-file-name "~/.emacs.d/emacs23-vine-default.el"))
919    (load (expand-file-name "~/.emacs.d/emacs23-vine-default.el")))
920
921;;; run vine-default-setup
922(vine-default-setup)
923        </screen>
924      </para>
925    </sect2>
926
927    <sect2 id="vine-default-framework-package-init-el">
928      <title>各 elisp アプリケーションの vine-default-<emphasis>package</emphasis></title>
929      <para>
930        例えば、ibus-el の場合は
931        <filename>/etc/emacs-23.3/site-start.d/95-ibus-el-init.el</filename> 
932        に以下のような設定をしています。
933        <screen>
934(defcustom vine-default-ibus-el t
935  "A boolean for vine-default-ibus-el"
936  :type 'boolean)
937
938(add-hook 'vine-default-setup-hook
939          (lambda()
940            (if vine-default-ibus-el
941                (require 'vine-default-ibus-el))))
942        </screen>
943       
944        <filename>/usr/share/emacs-23.3/site-lisp/ibus-el/vine-default-ibus-el.el</filename> には、
945        ibus-el に関するデフォルト設定を記述して、
946        (provide 'vine-default-ibus-el) を提供しています。
947      </para>
948    </sect2>
949   
950  </sect1>
951
952  <sect1 id="vine-default-customize">
953    <title>カスタマイズ</title>
954    <para>
955      vine-default に関するカスタマイズの例を紹介します。
956    </para>
957
958    <sect2 id="vine-default-customize-system-wide-vine-default">
959      <title>/etc/emacs/emacs23-local.el を用いた vine-default の変更</title>
960      <para>
961        システム全体で vine-default をすべて無効にしたい場合は、
962        <filename>/etc/emacs/emacs23-local.el</filename><xref linkend="fig-emacs23-local-el" />
963        に
964        <screen>(setq vine-default nil)</screen>
965        を設定するのもよいでしょう。
966        この設定を施したシステムにおいて、
967        あるユーザが vine-default をすべて有効にしたい場合は、
968        <filename>~/.emacs.d/emacs23-vine-default.el</filename><xref linkend="fig-emacs23-vine-default-el" />
969        に
970        <screen>(setq vine-default t)</screen>
971        を設定します。
972      </para>
973    </sect2>
974
975    <sect2 id="vine-default-customize-add-to-list-load-path">
976      <title>マクロサーチパスの追加</title>
977      <para>
978        <filename>~/.emacs.d/emacs23-vine-default.el</filename><xref linkend="fig-emacs23-vine-default-el" />
979        に、ユーザのマクロサーチパスのディレクトリをまとめて設定しておくと、
980        便利でしょう。
981      </para>
982      <para>
983        例えば、<filename>~/.emacs.d/local</filename> を追加したい場合、
984        <filename>~/.emacs.d/emacs23-vine-default.el</filename><xref linkend="fig-emacs23-vine-default-el" />
985        に
986        <screen>(add-to-list 'load-path "~/.emacs.d/local")</screen>
987        を設定します。
988
989        <note>
990          <para>
991            Vine Linux 6 の Emacs 環境では、
992            従来、ユーザのマクロサーチパスのディレクトリであった
993            <filename>~/lib/emacs</filename> を設けていません。
994            必要であれば、
995            <filename>~/.emacs.d/emacs23-vine-default.el</filename><xref linkend="fig-emacs23-vine-default-el" />
996            に
997            <screen>(add-to-list 'load-path "~/lib/emacs")</screen>
998            を設定します。
999          </para>
1000        </note>
1001
1002      </para>
1003    </sect2>
1004
1005    <sect2 id="vine-default-customize-confliction-wl-wl-beta">
1006      <title>wl-2.14.0 と wl-beta-2.15.9 との共存</title>
1007      <para>
1008        Wanderlust の安定版 2.14.0、開発版 2.15.9 は、
1009        それぞれ wl, wl-beta パッケージにより提供されます。
1010        しかしながら、
1011        <command>M-x wl</command> を実行して起動できるバージョンは、
1012        どちらか一方のみです。
1013        そこで wl-beta を常用したい場合は、
1014        <filename>~/.emacs.d/emacs23-vine-default.el</filename><xref linkend="fig-emacs23-vine-default-el" />
1015        に
1016        <screen>
1017(setq vine-default-wl nil)
1018        </screen>
1019        を設定します。
1020      </para>
1021    </sect2>
1022
1023    <sect2 id="vine-default-customize-confliction-auctex-yatex">
1024      <title>AUCTeX と YaTeX の共存</title>
1025      <para>
1026        AUCTeX, YaTeX は、それぞれ auctex, yatex パッケージにより提供されます。
1027        どちらも TeX 入力支援環境ですが、
1028        TeX 関連ファイルに依存するために同一環境でどちらのユーザも存在する場合に、
1029        ファイル関連で衝突してしまいます。
1030      </para>
1031
1032      <sect3 id="vine-default-customize-confliction-auctex-yatex-system-wide">
1033        <title>システム全体での設定で対応</title>
1034        <para>
1035          システム全体での設定(<xref linkend="system-wide-configuration" />)で対応する場合は、以下のような方法が考えられます。
1036          <itemizedlist>
1037            <listitem>
1038              <para>システム全体での設定で AUCTeX と YaTeX に関するデフォルト設定を無効にする</para>
1039            </listitem>
1040            <listitem>
1041              <para>ユーザごとに AUCTeX または YaTeX の設定をする</para>
1042            </listitem>
1043          </itemizedlist>
1044        </para>
1045        <para>
1046          まず、<filename>/etc/emacs/emacs23-local.el</filename><xref linkend="fig-emacs23-local-el" />)に
1047        <screen>
1048(setq vine-default-auctex nil
1049      vine-default-preview-latex nil
1050      vine-default-yatex nil
1051      vine-default-yahtml nil
1052    )
1053        </screen>
1054        を設定します。
1055        </para>
1056        <para>
1057          つぎに、ユーザ初期設定ファイル
1058          <filename>~/.emacs.d/init.el</filename><xref linkend="fig-init-el" />)以降に、
1059          AUCTeX または YaTeX の設定を記述します。
1060          例えば、やてふの設定は、
1061          Vine Linux のデフォルト設定のまま使いたい場合、
1062          <screen>(require 'vine-default-yatex)</screen>
1063          を記述します。
1064        </para>
1065      </sect3>
1066
1067      <sect3 id="vine-default-customize-confliction-auctex-yatex-per-user">
1068        <title>ユーザごとの設定で対応</title>
1069        <para>
1070          YaTeX ユーザは、
1071          <filename>~/.emacs.d/emacs23-vine-default.el</filename><xref linkend="fig-emacs23-vine-default-el" />
1072          に
1073          <screen>
1074(setq vine-default-auctex nil
1075      vine-default-preview-latex nil
1076    )
1077          </screen>
1078          を設定します。
1079        </para>
1080        <para>
1081          AUCTeX ユーザは、
1082          <filename>~/.emacs.d/emacs23-vine-default.el</filename><xref linkend="fig-emacs23-vine-default-el" />
1083          に
1084          <screen>
1085(setq vine-default-yatex nil
1086      vine-default-yahtml nil
1087    )
1088          </screen>
1089          を設定します。
1090        </para>
1091      </sect3>
1092    </sect2>
1093
1094    <sect2 id="vine-default-customize-YaTeX-inhibit-prefix-letter">
1095      <title>YaTeX のデフォルトプレフィックスを従来のものに戻す</title>
1096      <para>
1097        YaTeX 製作者の推奨により、
1098        YaTeX のデフォルトプレフィックスを vine-default-yatex で変更しています。
1099        しかしながら、従来のデフォルトプレフィックスに戻したい場合は、
1100        <filename>~/.emacs.d/emacs23-vine-default.el</filename><xref linkend="fig-emacs23-vine-default-el" />
1101        に
1102        <screen>
1103;; [推奨] デフォルトプレフィックスの変更 [yatex:04567]
1104;; だけど、頑なにデフォルトのままにする
1105(setq YaTeX-inhibit-prefix-letter nil)
1106        </screen>
1107        を設定します。
1108
1109      </para>
1110    </sect2>
1111
1112    <!-- <sect2 id="vine-default-customize-"> -->
1113    <!--   <title></title> -->
1114    <!--   <para> -->
1115    <!--   </para> -->
1116    <!-- </sect2> -->
1117
1118  </sect1>
1119
1120</chapter>
1121
1122 <chapter id="emacs-customize">
1123   <title>Emacs のカスタマイズ</title>
1124
1125   <para>
1126     Emacs をカスタマイズしていくには、
1127     <itemizedlist>
1128       <listitem>
1129         <para>
1130           Emacs が持っているカスタマイズの仕組みを利用する
1131         </para>
1132       </listitem>
1133       <listitem>
1134         <para>
1135           自分で設定ファイルに設定や関数などを書いていく
1136         </para>
1137       </listitem>
1138     </itemizedlist>
1139     という二つの方法があります。
1140   </para>
1141
1142   <sect1 id="emacs-customize-saving-customizations">
1143     <title>設定ファイル</title>
1144     <para>
1145       ユーザ初期設定ファイル
1146       <filename>~/.emacs.d/init.el</filename><xref linkend="fig-init-el" />
1147       は、<xref linkend="vine-default" /> 以外の設定を自由に記述できます。
1148     </para>
1149     <para>
1150       カスタマイズの仕組みを利用して設定した設定は、
1151       デフォルトでユーザ初期設定ファイル
1152       <filename>~/.emacs.d/init.el</filename>
1153       の末尾に追記されます。
1154       これらの設定を別のファイルにまとめたい場合は、あらかじめ
1155       <filename>~/.emacs.d/init.el</filename>
1156       にカスタムファイルを設定します。
1157       例えば、以下のようにカスタムファイルを設定すると、
1158       カスタマイズの仕組みを利用して設定した設定は、     
1159       <filename>~/.emacs.d/custom.el</filename>
1160       に保存されます。
1161       <screen>
1162;; カスタムファイルの指定
1163(setq custom-file "~/.emacs.d/custom.el")
1164(if (file-exists-p (expand-file-name custom-file))
1165    (load-file (expand-file-name custom-file)))
1166       </screen>
1167     </para>
1168   </sect1>
1169
1170   <sect1 id="emacs-customize-from-menu-bar-options">
1171     <title>メニューバーのオプションを利用する</title>
1172     <para>
1173       Emacs の外観に関する基本的な設定は、
1174       メニューバーの [オプション] から設定できます。
1175       いくつか設定を変更した後、
1176       メニューバーの [オプション] → [オプションの保存] をすると、
1177       カスタマイズの仕組みを利用して設定としてが保存されます。
1178       例えば、
1179       <itemizedlist>
1180         <listitem><para>検索で大文字・小文字を区別しない</para></listitem>
1181         <listitem><para>[表示/非表示] -> [ツールバー] のチェックをはずす</para></listitem>
1182         <listitem><para>[標準フォントを設定...] から Ricty Regular 12pt を指定する</para></listitem>
1183       </itemizedlist>
1184       のような変更をすると、以下のように
1185       デフォルトで <filename>~/.emacs.d/init.el</filename> の末尾に、
1186       追記されます。
1187       <screen>
1188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1189;;  -*- coding: utf-8-unix -*-
1190;;  FSF Emacs 初期設定ファイル
1191;;   
1192;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1193
1194
1195
1196
1197
1198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1199
1200(custom-set-variables
1201  ;; custom-set-variables was added by Custom.
1202  ;; If you edit it by hand, you could mess it up, so be careful.
1203  ;; Your init file should contain only one such instance.
1204  ;; If there is more than one, they won't work right.
1205 '(case-fold-search nil)
1206 '(tool-bar-mode nil))
1207(custom-set-faces
1208  ;; custom-set-faces was added by Custom.
1209  ;; If you edit it by hand, you could mess it up, so be careful.
1210  ;; Your init file should contain only one such instance.
1211  ;; If there is more than one, they won't work right.
1212 '(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")))))
1213;; Local Variables:
1214;; mode: emacs-lisp
1215;; End:
1216       </screen>
1217     </para>
1218   </sect1>
1219
1220   <sect1 id="utils-1-10-3">
1221     <title>カスタマイズの仕組みを利用する</title>
1222     <para>
1223       メニューバーの
1224       [オプション] → [カスタマイズ] → [トップレベルグループ]
1225       を選択する、または、
1226       <command>M-x customize</command> を実行すると、
1227       <xref linkend="fig-emacs-M-x-customize" /> 
1228       のようなカスタマイズの画面になります。
1229     </para>
1230     
1231     <para>
1232       TAB キーを押すことで、
1233       アンダーラインのある部分、
1234       ボタンになっている部分(<guibutton>Set for current session</guibutton> など)、
1235       文字の入力が可能な部分にカーソルが移動します。
1236       Shift+TAB でカーソルが逆方向(上)に移動します。
1237       Enter キーで選択、確定です。
1238       <guibutton>Exit</guibutton> を選択すると、閉じます。
1239
1240       <figure id="fig-emacs-M-x-customize">
1241         <title>カスタマイズの画面</title>
1242         <graphic fileref="figures/emacs-M-x-customize.png" />
1243       </figure>
1244
1245       ここで操作して設定した内容は、
1246       デフォルトで <filename>~/.emacs.d/init.el</filename> の末尾に、
1247       追記されます。
1248     </para>
1249
1250     <para>
1251       なお、customize は、細分化されていて、
1252       <command>M-x customize</command> の他に、
1253       <command>M-x customize-face</command>,
1254       <command>M-x customize-group</command>,
1255       <command>M-x customize-variable</command> 
1256       などとさまざまなものがあります。
1257       メニューバーの [オプション] → [カスタマイズ] 内の項目を見る、
1258       または、
1259       <command>M-x customize</command> 
1260       と入力して TAB キーを押して補完候補を見るとよいでしょう。
1261     </para>
1262
1263     <example id="customize-variable">
1264       <title>TAB の幅を設定する</title>
1265       <para>
1266         ここでは、<command>M-x customize-variable</command> を利用して、
1267         TAB の幅 を設定してみます。
1268         <command>M-x customize-variable</command> 
1269         と入力し Enterキーを押します<footnote>
1270           <para>
1271           TAB キーで補完ができます。
1272           <command>M-x cus</command> くらいまで入力したら、
1273           TAB キーをおしてみてください。
1274           <command>M-x customize</command> となるはずです。
1275           さらに -v と入力して TAB キーを押すと、
1276           <command>M-x customize-variable</command> と補完されます。
1277           </para>
1278         </footnote>
1279         画面最下部のミニバッファに
1280         Customize variable: と表示されたら、
1281         tab-width と入力し Enter キーを押します<footnote>
1282           <para>
1283             これも TAB キーで補完が出来ます。
1284           </para>
1285         </footnote>
1286       </para>
1287 
1288       <para>
1289         <xref linkend="emacs-M-x-customize-variable" />
1290         のように画面が切り替わります。
1291 
1292         <figure id="emacs-M-x-customize-variable">
1293           <title>emacsの customize-variable の画面</title>
1294           <graphic fileref="figures/emacs-M-x-customize-variable.png" />
1295         </figure>
1296
1297         TAB キーを押して、
1298         8 という数字が表示されているところまでカーソルを移動し、
1299         C-d で 8 という文字を削除し、数字を入力します。
1300         例えば、4 とすると、TAB の幅が元の幅の半分になります。
1301       </para>
1302
1303       <para>
1304         <guibutton>Set for current session</guibutton> 
1305         というボタンのところまで移動し、Enter キーを押すと、
1306         一時的に設定を有効にした状態になります。
1307         数値は保存されないので、次回起動時には元の値 8 にもどります。
1308       </para>
1309       <para>
1310         <guibutton>Save for future sessions</guibutton> のボタンで
1311         Enter キーを押すと、この数値が、
1312         設定ファイルに書き込まれて保存され、
1313         次回 Emacs を起動した時に利用できるようになります。
1314       </para>
1315       <para>
1316         <guibutton>Undo edits</guibutton> のボタンで、
1317         入力した数値が元にもどります。
1318       </para>
1319       <para>
1320         <guibutton>Reset to saved</guibutton> のボタンで、
1321         前回保存した時の値にもどります。
1322       </para>
1323       <para>
1324         <guibutton>Erase customizations</guibutton> のボタンで、
1325         設定した数値が取り消され、設定ファイルにあった記述も削除されます。
1326       </para>
1327       <para>
1328         数値を入力し、
1329         <guibutton>Set for current session</guibutton> 
1330         のボタンを押してテストして、
1331         適当な値になるまで customize を行うという作業を繰り返して、
1332         それから <guibutton>Save for future sessions</guibutton> 
1333         で保存するという作業をします。
1334       </para>
1335 
1336       <para>
1337         ここでは、<guibutton>Save for future sessions</guibutton> 
1338         で保存してしまっていいと思います。
1339       </para>
1340 
1341       <para>
1342         保存したら、<guibutton>Exit</guibutton> のボタンをクリックします。
1343         M-&lt; でページの先頭まで戻ると早いです。
1344       </para>
1345 
1346       <para>
1347         <guibutton>Save for future sessions</guibutton> で保存すると、
1348         以下のように
1349         デフォルトで <filename>~/.emacs.d/init.el</filename> の末尾に、
1350         追記されます。
1351       </para>
1352 
1353       <screen>
1354;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1355
1356(custom-set-variables
1357  ;; custom-set-variables was added by Custom.
1358  ;; If you edit it by hand, you could mess it up, so be careful.
1359  ;; Your init file should contain only one such instance.
1360  ;; If there is more than one, they won't work right.
1361 '(tab-width 4))
1362       </screen>
1363
1364       <para>
1365         この設定値を変更する時には、直接編集するのではなく
1366         <command>M-x customize</command> 
1367         などを使って再度設定するようにしてください。
1368       </para>
1369     </example>
1370
1371     <note>
1372       <para>
1373         ユーザ初期設定ファイル
1374         <filename>~/.emacs.d/init.el</filename> 
1375         などに書かれている項目を設定する場合は、
1376         設定ファイルを直接編集するのが無難です。
1377       </para>
1378     </note>
1379
1380   </sect1>
1381   <sect1 id="emacs-customize-managing-multiple-versions">
1382     <title>複数バージョンの管理</title>
1383     <para>
1384       Emacs-23.3 と Emacs-24.0.50 とのユーザ初期設定ファイルを管理するためには、
1385       <filename>~/.emacs.d/init.el</filename> を
1386       Emacs バージョン分岐用ファイルにする必要があります。
1387       この節では、複数バージョンの管理に関する一例を紹介します。
1388     </para>
1389
1390     <example id="emacs-customize-managing-multiple-versions-init-el">
1391       <title>複数バージョン分岐用ファイル ~/.emacs.d/init.el</title>
1392       <para>
1393         以下のような <filename>~/.emacs.d/init.el</filename> に変更すると、
1394         Emacs-23.3, Emacs-24.0.50 のユーザ初期設定ファイルは、それぞれ
1395         <filename>~/.emacs.d/emacs23-init.el</filename>,
1396         <filename>~/.emacs.d/emacs24-init.el</filename>
1397         になります。
1398         また、必要であれば、以下のようにカスタマイズによる設定を、
1399         別ファイルに保存してもよいでしょう。
1400         Emacs-23.3, Emacs-24.0.50 のカスタムファイルは、それぞれ
1401         <filename>~/.emacs.d/emacs23-custom.el</filename>,
1402         <filename>~/.emacs.d/emacs24-custom.el</filename>
1403         になります。
1404         <screen>
1405;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1406;;  -*- coding: utf-8-unix -*-
1407;;  FSF Emacs バージョン分岐用ファイル
1408;;   
1409;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1410
1411;; ユーザ初期設定ファイルの指定
1412(setq user-init-file
1413      (concat "~/.emacs.d/emacs" (number-to-string emacs-major-version)
1414              "-init.el"))
1415
1416;; ;; カスタムファイルの指定
1417;; (setq custom-file
1418;;   (concat "~/.emacs.d/emacs" (number-to-string emacs-major-version)
1419;;        "-custom.el"))
1420
1421(if (file-exists-p (expand-file-name user-init-file))
1422    (load-file (expand-file-name user-init-file)))
1423;; (if (file-exists-p (expand-file-name custom-file))
1424;;     (load-file (expand-file-name custom-file)))
1425
1426
1427;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1428
1429;; Local Variables:
1430;; mode: emacs-lisp
1431;; End:
1432         </screen>
1433       </para>
1434       
1435       <para>
1436         Emacs バージョンによらずに、
1437         共通な設定をまとめて記述しておきたい場合は、
1438         <filename>~/.emacs.d/init.el</filename> 
1439         に直接記述するか、以下の例の
1440         <filename>~/.emacs.d/emacs-common.el</filename> 
1441         のようなファイルを設けてもよいでしょう。
1442         <screen>
1443;; 個人的な設定ファイル: Emacs バージョン共通
1444(setq my-emacs-common-file "~/.emacs.d/emacs-common.el")
1445(if (file-exists-p (expand-file-name my-emacs-common-file))
1446    (load-file (expand-file-name my-emacs-common-file)))
1447         </screen>
1448       </para>
1449     </example>
1450
1451   </sect1>
1452   
1453 </chapter>
1454
1455 <appendix id="vine4-emacs">
1456   <title>Vine Linux 4.2 の Emacs 環境</title>
1457
1458   <sect1 id="vine4-emacs-system-wide-configuration">
1459     <title>「システム全体での設定」の課題</title>
1460     <para>
1461       Vine Linux 4.2 以前の Emacs では、
1462       Emacs Lisp の RPM パッケージに含まれていた
1463       <filename>site-start.el</filename> に
1464       Emacs Lisp の設定を記述していました。
1465       つまり、Vine Linux 5 以降でいう
1466       「個別の RPM パッケージに含まれている設定(<xref linkend="distribution-wide-configuration" />)」
1467       と
1468       「システム全体での設定(<xref linkend="system-wide-configuration" />)」
1469       が分離されていませんでした。
1470       そのため、RPM パッケージで設定されている内容を変更するために
1471       <filename>site-start.el</filename> ファイルを編集した場合、
1472       RPM パッケージがアップデートされると再び設定を実施する必要がありました。
1473     </para>
1474     <para>
1475      Vine Linux 5 以降では、
1476      「<xref linkend="distribution-wide-configuration" />
1477      と
1478      「<xref linkend="system-wide-configuration" />
1479      を分離することにより、この問題を解決しています。
1480     </para>
1481   </sect1>
1482
1483   <sect1 id="vine4-emacs-my-el">
1484     <title>Vine Linux 4.2 以前の ~/.emacs.my.el</title>
1485     <para>
1486       Vine Linux 4.2 以前におけるユーザ初期設定ファイル
1487       <filename>~/.emacs.el</filename> には、
1488       ユーザ用初期化ファイル <filename>~/.emacs.my.el</filename>
1489       <footnote>
1490         <para>
1491           個人用設定を書くためのファイルでした。
1492         </para>
1493       </footnote>
1494       があれば、
1495       それを読み込む仕組みがありました。
1496       Vine Linux 5 以降では、<xref linkend="vine-default" /> に移行したため、
1497       <filename>~/.emacs.my.el</filename> を読み込む仕組みは廃止しました。
1498     </para>
1499     <para>
1500       もし過去の <filename>~/.emacs.my.el</filename> を流用したい場合は、
1501       以下のようにして
1502       <filename>~/.emacs.my.el</filename> 
1503       を読み込ませることができます。
1504       <screen>
1505(if (file-exists-p (expand-file-name "~/.emacs.my.el"))
1506    (load (expand-file-name "~/.emacs.my.el") nil t nil))
1507       </screen>
1508       ただし、Emacs-23.3 と Emacs-22 以前は随分仕様が変わっているので、
1509       Vine Linux 4 の Emacs-22 などで使っていた
1510       <filename>~/.emacs.my.el</filename> 
1511       をそのまま流用できるとはかぎりません。
1512       Vine Linux 6 では、
1513       いままでの <filename>~/.emacs.my.el</filename> の設定を改めて、
1514       <filename>~/.emacs.d/init.el</filename><xref linkend="fig-init-el" />)以下に設定することを推奨します。
1515     </para>
1516   </sect1>
1517
1518 </appendix>
1519
1520 <appendix id="emacs-ime-list">
1521   <title>emacs-ime に設定できる値の一覧</title>
1522   <para>
1523     Vine Linux 5 で emacs-ime に設定できる値は次の通りです。
1524     ただし、現在はよく使われるもののみを記載しています。
1525   </para>
1526
1527   <table frame="all">
1528     <title>emacs-ime に設定できる値の一覧 (抜粋)</title>
1529     <tgroup cols="3">
1530       <thead>
1531         <row>
1532           <entry>使うIME</entry>
1533           <entry>emacs-ime に設定する値</entry>
1534           <entry>Vine Linux 5 でのパッケージ名</entry>
1535         </row>
1536       </thead>
1537       <tbody>
1538         <row>
1539           <entry>Anthy (japanese-egg-anthy) <footnote id="emacs-ime-list-leim"><para>LEIMを使用。</para></footnote></entry>
1540           <entry>scim、SCIM、anthy、Anthy、egg-anthy、tamago-anthy</entry>
1541           <entry>tamago パッケージ</entry>
1542         </row>
1543         <row>
1544           <entry>Anthy (anthy-el)</entry>
1545           <entry>anthy-el、Anthy-el</entry>
1546           <entry>anthy-el パッケージ</entry>
1547         </row>
1548         <row>
1549           <entry>SCIM</entry>
1550           <entry>scim-bridge、scim-bridge-el</entry>
1551           <entry>scim-bridge-el パッケージ</entry>
1552         </row>
1553         <row>
1554           <entry>UIM</entry>
1555           <entry>uim、uim-el</entry>
1556           <entry morerows="1">uim-el パッケージ</entry>
1557         </row>
1558         <row>
1559           <entry>UIM (japanese-anthy-utf8-uim)<footnoteref linkend="emacs-ime-list-leim"/></entry>
1560           <entry>uim-leim</entry>
1561         </row>
1562         <row>
1563           <entry>ibus</entry>
1564           <entry>ibus-el、IBus-el</entry>
1565           <entry>ibus-el パッケージ</entry>
1566         </row>
1567         <row>
1568           <entry>Mozc (japanese-mozc)<footnoteref linkend="emacs-ime-list-leim"/></entry>
1569           <entry>mozc、mozc-el</entry>
1570           <entry>mozc-el パッケージ</entry>
1571         </row>
1572         <row>
1573           <entry>SKK (Daredevil SKK)</entry>
1574           <entry>skk</entry>
1575           <entry>skk パッケージ</entry>
1576         </row>
1577         <row>
1578           <entry>T-Code (tc2)</entry>
1579           <entry>tc2、tc-el</entry>
1580           <entry>tc-el パッケージ</entry>
1581         </row>
1582         <row>
1583           <entry>ATOK</entry>
1584           <entry>iiimecf、IIIMECF、atokx、atokx2、atokx3</entry>
1585           <entry>IIIMECF パッケージ</entry>
1586         </row>
1587         <row>
1588           <entry>Wnn、FreeWnn (japanese-egg-wnn)<footnoteref linkend="emacs-ime-list-leim"/></entry>
1589           <entry>wnn、Wnn、wnn6、Wnn6、wnn8、Wnn8</entry>
1590           <entry>tamago パッケージ</entry>
1591         </row>
1592         <row>
1593           <entry>wnn ななたまご (Wnn7egg)</entry>
1594           <entry>wnn7egg、wnn7、Wnn7</entry>
1595           <entry>wnn7egg パッケージ</entry>
1596         </row>
1597       </tbody>
1598     </tgroup>
1599   </table>
1600 </appendix>
1601 
1602</book>
Note: See TracBrowser for help on using the repository browser.