Emacs Lisp
最終更新日時:2007-03-08 15:34:02
Emacs
Emacs
関数
変数に値を代入
(setq name "koumei2")
リストを作成
(setq os_name (list "Solaris" "Linux" "FreeBSD")) → ("Solaris" "Linux" "FreeBSD")
リストの最初の要素を取り出す
(car (list "Solaris" "Linux" "FreeBSD" "Windows")) → "Solaris"
リストの最初の要素をはずす
(cdr (list "Solaris" "Linux" "FreeBSD" "Windows")) → ("Linux" "FreeBSD" "Windows")
リストへ追加
(setq os_name (append(list "Solaris") (list "Linux" "Windows98"))) → ("Solaris" "Linux" "Windows98")
引数で指定した文字列を連結
(concat "koumei2" "@xxx" ".com") → "koumei2@xxx.com"
第1引数の内容を表示する。
第1引数は format された文字列を指定でき、それに対応するものを第2引数以降に指定する
(message "koumei%d@xxx.%s" 2 "com") → koumei2@xxx.com と表示される
カーソル位置に文字列を挿入する
(insert "koumei2") → koumei2 と挿入される
関数を定義する
(defun print_koumei2(arg1 arg2) (message "koumei2%s%s" arg1 arg2))
M-x .... で呼び出し可能にする
(interactive)
カーソルの位置を返す
(point) → 数値が返る
カーソルの位置にマークをつけ、そのマークを返す
(point-marker) → マークが返る
marker で指定したマークの位置を返す
(marker-position marker) → 数値が返る
カレントのバッファを返す
(current-buffer) → バッファを表す文字列が返る
カーソルを移動する
場所 | 指定方法 |
---|---|
先頭 | (beginning-of-buffer) |
最後 | (end-of-buffer) |
指定した分だけ右 | (forward-char 5) |
指定した分だけ左 | (backward-char 5) |
指定した分だけ下 | (forward-char 5) or (next-line -5) |
指定した分だけ上 | (previous-char 5) |
行の最後 | (end-of-line) |
指定されたプロンプトを表示して文字列の入力待ちをする。
initial を指定すると入力文字の最初の部分を指定できる。
ただし、この部分もユーザが編集可能
(read-string "Input: " "ave=")
指定された文字列を検索し、見つかった場合にはその位置にカーソルを移動し、カーソル位置を返す。
回数を指定すると、その回数の検索で該当した場所に対して作用する。
それ以外のそれぞれの違いは以下の通り。
関数 | 機能 |
---|---|
search-forward | 現在位置より下に向かって検索 |
search-backward | 現在位置より上に向かって検索 |
re-search-forward | search-forwardの正規表現対応版 |
re-search-backward | search-backwardの正規表現対応版 |
(search-forward "koumei2") (search-forward "koumei2" nil t 5)
条件を満たしている間指定された文を実行
(setq x 0) (while (< x 10) (insert "*") (setq x (1+ x))) → **********
現在位置、マーク、バッファを一時的に記憶し、引数で指定された命令を実行する。
実行終了後、一時的に記憶したものを復帰する。
(save-excursion (beginning-of-buffer)(end-of-buffer))
指定したバッファにカレントバッファを切り替える
(set-buffer buffer)
指定したバッファを現在のウインドウに表示する
(switch-to-buffer buffer)
指定したバッファの指定した範囲の文字列を現在のカーソル位置に挿入する。
(insert-buffer-substring (current-buffer) 1 10)
指定した命令内でのみ有効な局所変数定義する。
局所変数は第1引数で指定する。
(let ((name "koumei2"))(insert name)) → koumei2 と挿入される
変数
case-fold-search
値が t だと検索の際に大文字小文字を区別しない。nil だと区別する