Emacs Lisp

最終更新日時:2007-03-08 15:34:02
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-forwardsearch-forwardの正規表現対応版
re-search-backwardsearch-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 だと区別する

お問い合わせは 掲示板 にて。