次のページ
前のページ
目次へ
Emacs-Lisp HOWTO
Yoshio Shimamura <yoshios@green.ocn.ne.jp>
v1.0, 29 July 2000
この文書は、Emacs-Lisp についての簡易リファレンスです。
この文書の最新版は http://hp.vector.co.jp/authors/VA004572/index.html
から入手可能です。
お約束
------
1 ファイルの一行目
;;; -*- Emacs-Lisp -*-
2 タイトルとコピーライトメッセージを入れる
3 ファイルの拡張子を.elにする
基礎
----
ファイルの先頭に次のように記述する。
; -*- mode: lisp-interaction; syntax: elisp -*-
; title
; Copyright
拡張子を.elにする。
数値
----
1234 整数
3.14 小数
?c cの文字コード
?8 8進数
?x16 16進数
変数
----
defvar var-name &optional "変数の説明"
グローバル変数は、必ずdefvarで宣言する
グローバル変数は、必ずパッケージ固有の接頭辞を付ける
set シンボルへの値の代入
setq クォートしたシンボルへの値の代入
バッファローカル変数
(let (変数リスト)
実行部)
letにより同名の変数は隠蔽される。
(set 'girls '(jana dana judy))
(setq cars '(bmw porsche audi))
メジャーモードが備えるべきもの
1モード名の設定
(setq major-mode 'mode-name)
(setq mode-name "モード名")
2キーマップの設定
グローバルマップ
(define-key global-map "\C-helo" 'hello-world)
ローカルマップ
;a-local-mapというローカルマップ作成
(setq a-local-map (make-keymap))
;キー定義
(define-key a-local-map "s" 'sort-lines)
;使用宣言
(use-local-map a-local-map)
3動作に必要な変数や関数の設定
メジャーモードの中心関数
(defun a-mode()
(interactive)
モード名の設定
キーマップの設定)
(defun func-name (args, ...)
"Comments"
body)
引数リストで使えるもの
任意個の仮引数
&optional 以降の引数は省略可能
&rest 以降の引数を1つのリストとして扱う
関数定義のフォーマット
(defun FUNC-NAME (ARGUMENTS...)
"COMMENTS"
(interactive 引き数に関する情報);
BODY...)
例 7倍する関数
定義
(defun multiply-by-seven (number)
"Multiply NUMBER by seven."
(* 7 number))
呼び出し
(multiply-by-seven (+ 3 3))
+ 加算
- 減算
* 乗算
/ 除算
% 剰余
1+ インクリメント
1- デクリメント
文字の連結
(concat "I like " "to drive a car !")
メッセージの表示
(message "Hello Emacs-Lisp!")
(if 式 Form1 Form2 ...)
(and Form1 Form2 ...)
(or Form1 Form2 ...)
(cond
(式1 真の場合)
(式2 真の場合))
(while 式 実行部)
(progn 式1 式2 ... 式n)
次のように条件を満たしたときに複数の処理を行う場合に使われる
(if (CONDITION)
(progn proc1 proc2 ...)
PROC)
(error "エラーメッセージ")
関数の実行をストップしトップレベルに戻る。
- C-j
S式(Lisp Code)を評価し返値を表示
- C-x C-e (eval-last-sexp)
カーソル直前のS式を評価
- M-C-x (eval-defun)
カーソル位置以前の行頭で始まるS式を評価し結果をミニバッファに表示
ファイル全体のS式を評価するには、
M-x load-file
または
M-x eval-current-buffer
次のページ
前のページ
目次へ