[Top] [Contents] [Index] [ ? ]

Programming in Emacs Lisp

この Info ファイルは、Programming in Emacs Lisp (An introduction) 1.05 版の日本語訳です。翻訳元のファイルは GNU の配布の中に含まれている `emacs-lisp-intro-1.05.tar.gz' です。

序文  
1. List 処理  Lisp って何?
2. 実際の評価の仕方  
3. 関数定義の書き方  
4. バッファに関する幾つかの関数  
5. もう少し複雑な関数  
6. ナローイングとワイドニング  Emacs の注意を特定のリージョンにせばめる
7. car, cdr, cons:基本関数  Lisp における基本的な関数
8. テキストの切り取りと保存  
9. リストはどのように実装されているか  
10. テキストのヤンク  
11. ループと再帰  
12. 正規表現の検索  
13. カウント:繰り返しと正規表現  
14. defun 内の単語のカウント  
15. グラフを描く準備  
16. `.emacs' ファイル  
17. デバッグ  Emacs Lisp のデバッガの走らせ方
18. まとめ  
A. 関数 the-the  Appendix: だぶった単語を見つけるには
B. Kill リングの扱い  Appendix: kill リングはどう働いているか?
C. ラベルと軸が付いたグラフ  
Index  
About the Author  

 -- The Detailed Node Listing ---

Preface

このテキストを読むにあたって  
これは誰のために書かれたものか  
Lisp の歴史  
初心者の人へ  
謝辞  
訳者まえがき  

List Processing

1.1 Lisp のリスト  リストってなあに?
1.2 プログラムの実行  Lisp のリストはすぐに実行出来る
1.3 エラーメッセージの出力  
1.4 シンボルの名前と関数定義  
1.5 Lisp インタプリタ  
1.6 評価  
1.7 変数  
1.8 引数  
1.9 変数の値の設定  
1.10 まとめ  
1.11 練習問題  

Lisp Lists

1.1.1 Lisp のアトム  分解不可能な存在
1.1.2 リストの中の空白  
1.1.3 GNU Emacs によるリストのタイプの支援  

The Lisp Interpreter

1.5.1 バイトコンパイル  

Evaluation

1.6.1 内部のリストの評価  

Variables

1.7.1 値のないシンボルに対するエラーメッセージ  

Arguments

1.8.1 引数のデータ型  
1.8.2 引数には変数の値やリストも使える  
1.8.3 可変な数の引数  
                                ものもある
1.8.4 関数に間違った型の引数を与えると  
1.8.5 関数 message  メッセージを表示する時に便利な関数

Setting the Value of a Variable

1.9.1 set の利用  値の設定
1.9.2 setq の利用  引用符をつけずに値を設定するには
1.9.3 カウント  カウンタとしての setq の利用

Practicing Evaluation

評価の仕方  編集コマンドのタイプするか C-x C-e
                                で評価を実行出来る。
2.1 バッファの名前  
2.2 バッファの獲得  
2.3 バッファ間の移動  
2.4 バッファのサイズとポイントの位置  
2.5 練習問題  

How To Write Function Definitions

プリミティブな関数について  幾つかの関数は C で書かれている
3.1 特殊形式 defun  
3.2 関数定義のインストール  
3.3 関数をインタラクティブにする  
3.4 interactive の他のオプション  
3.5 コードをずっとインストールしておくには  
3.6 let  局所変数の作成と初期化
3.7 特殊形式 if  if とは?
3.8 If--then--else 式  
3.9 Lisp における真と偽  
3.10 save-excursion  ポイントやマークの位置、及びバッファの保存
3.11 復習  
3.12 練習問題  

Install a Function Definition

3.2.1 関数定義の変更  

Make a Function Interactive

3.3.1 インタラクティブな multiply-by-seven  インタラクティブバージョン

let

3.6.1 let 式の構成部分  
3.6.2 let 式の例  
3.6.3 let 式の変数宣言の中で初期値を設定しなかった場合  初期値をバインドしないとどうなるか

The if Special Form

3.7.1 関数 type-of-animal の詳細  if 式の例

save-excursion

3.10.1 save-excursion 式のテンプレート  埋めるべきスロットは一つだけ

A Few Buffer--Related Functions

4.1 情報の探し方  
4.2 簡略版 beginning-of-buffer の定義  goto-char, point-min,
                                そして push-mark を見てみよう
4.3 mark-whole-buffer の定義  beginning-of-buffer と殆ど同じ
4.4 append-to-buffer の定義  save-excursion
                                insert-buffer-substring を使う
4.5 復習  
4.6 練習問題  

The Definition of mark-whole-buffer

4.3.1 mark-whole-buffer の本体  本体は三行しかない

The Definition of append-to-buffer

4.4.1 インタラクティブ式 append-to-buffer  二つの部分からなるインタラクティブ式
4.4.2 append-to-buffer の本体  let 式との組み合わせ
4.4.3 append-to-buffer の中の save-excursion  save-excursion はどう働くか

A Few More Complex Functions

5.1 copy-to-buffer の定義  set-bufferget-buffer-create を利用
5.2 insert-buffer の定義  書き込み不可 と or の使い方
5.3 beginning-of-buffer の完全な定義  goto-char, point-min, そし
                                て push-mark を見てみる
5.4 復習  
5.5 &optional 引数の練習問題  &optional の練習問題

The Definition of insert-buffer

5.2.1 insert-buffer の中のインタラクティブ式  書き込み不可の状態の時の動作
5.2.2 関数 insert-buffer の本体部分  本体には orlet がある
5.2.3 or の代わりに if を使った insert-buffer  or の代わりに if を使う
5.2.4 本体部分の or  
5.2.5 insert-buffer の中の let  二つの save-excursion

The Interactive Expression in insert-buffer

書き込み不可のバッファ  
インタラクティブ式の中の `b'  

Complete Definition of beginning-of-buffer

5.3.1 省略可能な引数  
5.3.2 引数付きで呼び出された場合の beginning-of-buffer  省略可能引数の例
5.3.3 完全版 beginning-of-buffer  完全版

beginning-of-buffer with an Argument

大きなバッファの場合  
小さなバッファの場合  

Narrowing and Widening

ナローイングの利点  
6.1 特殊形式 save-restriction  
6.2 what-line  ポイントは今何行目にあるか
6.3 ナローイングの練習問題  

carcdrcons:基本関数

奇妙な名前の由来  
7.1 carcdr  リストの一部を取り出すための関数
7.2 cons  リストの構成
7.3 nthcdr  cdr を何回もよびだす
7.4 setcar  リストの最初の要素の変更
7.5 setcdr  リストの残りの要素の変更
7.6 練習問題  cons についての練習問題

cons

7.2.1 リストの長さを調べる: length  リストの長さを知る

Cutting and Storing Text

リストへのテキストの保存  
8.1 zap-to-char  テキストをある文字まで削除する
8.2 kill-region  リージョンの削除
8.3 delete-region: ちょっと脱線して C の話を  脱線: C で書かれた関数について
8.4 defvar を用いた変数の初期化  変数に初期値を与える
8.5 copy-region-as-kill  テキストの複写の定義
8.6 復習  cons と search-forward の復習
8.7 検索についての練習問題  

zap-to-char

8.1.1 interactive  三つの部分からなるインタラクティブ式
8.1.2 zap-to-char の本体部分  ちょっと復習
8.1.3 関数 search-forward  文字列検索の仕方
8.1.4 関数 progn  
8.1.5 zap-to-char についての総括  pointsearch-forward を使う
8.1.6 Version 18 での実装  version 18 での実装

The Version 18 Implementation

progn 式の本体  

copy-region-as-kill

8.5.1 copy-region-as-kill の本体部分  

The Body of copy-region-as-kill

関数 kill-append  
copy-region-as-kill の else-part  

How Lists are Implemented

9.1 練習問題  List についての練習問題

Yanking Text Back

10.1 Kill リングについての概観  kill リングはリストである
10.2 変数 kill-ring-yank-pointer  
10.3 yanknthcdr についての練習問題  ヤンクと nthcdr についての練習問題

Loops and Recursion

11.1 while  特定のコードの繰り返し
11.2 再帰  
11.3 ループについての練習問題  

while

11.1.1 while ループとリスト  
11.1.2 リストを使ったループの例: print-elements-of-list  while, car, cdr の利用
11.1.3 増加するカウンタを使ったループ  
11.1.4 減少するカウンタを使ったループ  

A Loop with an Incrementing Counter

増加カウンタの例  
関数定義の各部分  
各部分の総合  

Loop with a Decrementing Counter

減少するカウンタを使った例  
関数定義の各部分   
各部分の総合   

Recursion

11.2.1 List を使った再帰  再帰のテストにリストを使う
11.2.2 カウンタの代わりに再帰を使う  while ループを再帰で置き換える
11.2.3 cond を使った再帰の例  別の条件分岐を用いた再帰の例

Recursion in Place of a Counter

引数3の場合  

Regular Expression Searches

12.1 sentence-end の正規表現  
12.2 関数 re-search-forward  search-forward とほぼ同じ
12.3 forward-sentence  正規表現検索の単純な例
12.4 forward-paragraph:関数の金脈  もうちょっと複雑な例
12.5 自分自身の `TAGS' ファイルの作成  
12.6 復習  
12.7 re-search-forward についての練習問題  正規表現の練習問題

forward-sentence

while ループ  
正規表現の検索  

forward-paragraph: a Goldmine of Functions

let*  
前方に移動する場合の while ループ  
パラグラフとパラグラフの間での動作  
パラグラフの内部での動作  
Fill prefix が無い場合  fill prefix が無い場合
Fill prefix がある場合  fill prefix が有る場合
まとめ  forward-paragraph のまとめ

Counting: Repetition and Regexps

単語のカウント  Emacs には単語を数えるコマンドが欠けている
13.1 関数 count-words-region  正規表現を使う。でも問題が...
13.2 再帰を使った単語数のカウント  
13.3 練習問題:句読点のカウント  

The count-words-region Function

13.1.1 count-words-region の空白文字に関するバグ  

Counting Words in a defun

分割による困難の克服  
14.1 何を数えればよいか?  
14.2 単語やシンボルは何から構成されているか  
14.3 関数 count-words-in-defun  count-words とほぼ同じ
14.4 一つのファイルにある複数の defun を数える  
14.5 ファイルを見つける  
14.6 lengths-list-file についての詳細  沢山の定義の長さのリスト
14.7 異なるファイルの中の定義を数える  
14.8 異なるファイルの定義を再帰を使って数える  
14.9 データをグラフに表示するための準備  

Count Words in defuns in Different Files

14.7.1 関数 append  あるリストを別のリストに追加する

Prepare the Data for Display in a Graph

14.9.1 リストのソート  
14.9.2 ファイルのリストの作成  

Readying a Graph

棒グラフの表示  
15.1 関数 graph-body-print  グラフ本体の表示
15.2 関数 recursive-graph-body-print  グラフ本体の表示を再帰的に行う
15.3 軸を表示する  
15.4 練習問題  

Your `.emacs' File

Emacs のデフォルトの設定  
16.1 サイトごとの初期化ファイル  
16.2 あるセッションでの変数の設定  
16.3 `.emacs' の書き方  .emacs file の書き方
16.4 Text モードと Auto Fill モード  自動的に行を折り返す
16.5 メールのエイリアス  Email の短縮アドレス
16.6 Indent Tabs モード  TeX ではタブを使わないようにするには
16.7 幾つかのキーバインディング  
16.8 ファイルのロード  
16.9 オートロード  Autoload: 関数をすぐ使える状態に
16.10 ちょっとした拡張: line-to-top-of-window  関数を定義し、キーにバインドする
16.11 キーマップ  
16.12 X11 でのカラー表示  Version 19 の X 上でのカラー表示
16.13 V19 での雑多な事柄  ミニバッファを自動的なリサイズ etc.
16.14 モード行の修正  

Debugging

17.1 debug  組み込みデバッガの使い方
17.2 debug-on-entry  関数呼び出し時にデバッガを起動する
17.3 debug-on-quit(debug)  C-g を押した時にデバッガを起動する
17.4 ソースレベルのデバッガ edebug  ソースレベルのデバッガ Edebug
17.5 デバッグについての練習問題  

Handling the Kill Ring

B.1 関数 rotate-yank-pointer  リストの中でのポインタの移動と巡回
B.2 yank  切り取ったテキストを貼り付ける
B.3 yank-pop  ポインタが指しているテキストを貼り付ける

The rotate-yank-pointer Function

B.1.1 rotate-yank-pointer の本体  

The Body of rotate-yank-pointer

if 式の else-part  
剰余関数 %  
rotate-yank-pointer の中での % の利用  
最後の要素を指している場合  

yank

引数の渡し方  rotate-yank-pointer に引数を渡す
負の引数を渡すとどうなるか  

A Graph with Labelled Axes

ラベルのついたグラフのサンプル  
C.1 print-graph の変数リスト  print-graph の中の let
C.2 関数 print-Y-axis  縦軸のラベルの表示
C.3 関数 print-X-axis  横軸のラベルの表示
C.4 グラフ全体の表示  

The print-Y-axis Function

C.2.1 寄り道: 剰余の計算  
C.2.2 Y 軸の要素の構成  
C.2.3 Y 軸全体の構成  
C.2.4 print-Y-axis 最終版  縦軸の表示、最終版

The print-X-axis Function

C.3.1 X 軸の目盛記号  横軸に目盛記号を入れる

Printing the Whole Graph

C.4.1 print-graph のテスト  簡単なテスト
C.4.2 単語やシンボルの数のグラフ化  
C.4.3 表示されたグラフ  

Graphing Numbers of Words and Symbols

lambda  無名関数の書き方
関数 mapcar  要素のリストに関数を作用させる
まだバグがある...  



This document was generated by Matsuda Shigeki on April, 10 2002 using texi2html