Emacs Lisp - ぷちWiki

最終更新日時:

関数



変数に値を代入

 (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 だと区別する