[Top] | [Contents] | [Index] | [ ? ] |
この 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
式の変数宣言の中で初期値を設定しなかった場合初期値をバインドしないとどうなるか
Theif
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 ofmark-whole-buffer
4.3.1 mark-whole-buffer
の本体本体は三行しかない
The Definition ofappend-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-buffer
とget-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 ofinsert-buffer
5.2.1 insert-buffer
の中のインタラクティブ式書き込み不可の状態の時の動作 5.2.2 関数 insert-buffer
の本体部分本体には or
とlet
がある5.2.3 or
の代わりにif
を使ったinsert-buffer
or
の代わりにif
を使う5.2.4 本体部分の or
5.2.5 insert-buffer
の中のlet
式二つの save-excursion
式
The Interactive Expression ininsert-buffer
書き込み不可のバッファ インタラクティブ式の中の `b'
Complete Definition ofbeginning-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 ナローイングの練習問題
car
,cdr
,cons
:基本関数
奇妙な名前の由来 7.1 car
とcdr
リストの一部を取り出すための関数 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
についての総括point
とsearch-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 ofcopy-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 yank
とnthcdr
についての練習問題ヤンクと 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 練習問題:句読点のカウント
Thecount-words-region
Function
13.1.1 count-words-region
の空白文字に関するバグ
Counting Words in adefun
Count Words indefuns
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
ポインタが指しているテキストを貼り付ける
Therotate-yank-pointer
Function
B.1.1 rotate-yank-pointer
の本体
The Body ofrotate-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 グラフ全体の表示
Theprint-Y-axis
Function
C.2.1 寄り道: 剰余の計算 C.2.2 Y 軸の要素の構成 C.2.3 Y 軸全体の構成 C.2.4 print-Y-axis
最終版縦軸の表示、最終版
Theprint-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
要素のリストに関数を作用させる まだバグがある...