maeshimaの日記

メモ書きです

elispの関数

やさしいEmacs-Lisp講座の第三章に出てくる関数をざっとまとめたメモ。

移動境界の検査

bobp
ポイントがバッファ先頭にあればt,なければnilを返す
eobp
ポイントがバッファ末尾にあればt,なければnilを返す
bolp
ポイントが行頭にあればt,なければnilを返す
eolp
ポイントが行末にあればt,なければnilを返す

相対移動

forward-char
ポイントを文字単位で1つ前方に進める。引数を与えるとその数だけ進む。
backward-char
ポイントを文字単位で1つ後方に進める。引数を与えるとその数だけ進む。
forward-line
ポイントを次の論理行に進める。引数を与えるとその数だけ行移動する。負の数値を与えると先頭方向へ行移動する。C-nはnext-lineでforward-lineとは別
forward-sexp
S式を単位に移動する。通常M-C-fに割り当てられている。
backward-sexp
S式を単位に移動する。通常M-C-bに割り当てられている。

絶対移動

point
現在の位置のポイント値を返す。
mark
マーク位置のポイント値を返す。マーク位置がないとエラーを返す。引数にnil以外を指定すると、マークがない場合にnilを返す。
region-beginning
ポイントとマークのうち、小さい方の値を得る。マークが設定されていない場合はエラー
region-end
ポイントとマークのうち、大きい方の値を得る。マークが設定されていない場合はエラー
point-min
バッファの先頭位置のポイント値を返す
point-max
バッファの末尾のポイント値を返す
goto-char
引数のポイント値の場所に移動する。
save-excursion
save-excurtionに入った時点のポイント位置、マーク位置、カレントバッファを記憶し、引数中の処理を行った後にそれらを復帰する。
goto-line
引数で指定した論理行に飛ぶ。
move-to-window-line
ウィンドウの先頭行を基準に指定行に移動する。画面の先頭の行は0で、引数を省略すると画面の中央に移動する。余り使わない。
beginning-of-line
ポイントを行頭に移動する
end-of-line
ポイントを行末に移動する。
move-to-column
指定した桁位置に移動する。行頭は0桁目。
current-column
現在の桁位置を返す。

単純文字列検索

search-forward
文字列を順方向に向かって検索する。
search-backward
文字列を逆方向に向かって検索する。
word-search-forward, word-search-backward
文字単位の検索

文字種スキップ

skip-chars-forward
列挙した文字群をスキップする。指定した文字群のどれかがポイント位置にある限り、ポイントを先に進める。
skip-chars-backward
逆方向にスキップする

正規表現で検索

re-search-forward
正規表現にマッチする文字列を順方向に向かって検索する。文字列が見つかった場合は、ポイントをマッチした文字列全体の終端に移動し、その場所のポイント値を返す。
re-search-backward
正規表現にマッチする文字列を逆方向に向かって検索する。
string-match
文字列中に正規表現とマッチする部分があるかどうかを照合する。マッチしたら開始位置を返し、なければnilを返す
looking-at
ポイント位置以降が指定した正規表現にマッチするか照合する。マッチしたらtを、そうでない場合はnilを返す
char-after
指定したポイント位置の文字コードを返す。与えた値が範囲外の時はnilを返す
char-before
指定したポイント位置の直前位置の文字コードを返す。与えた値が範囲外の時にはnilを返す
following-char
現在のポイント位置の文字コードを返す。
preceding-char
現在のポイントの直前の位置の文字コードを返す。バッファ先頭で評価した場合は0を返す

検索結果の参照

match-beginning
指定したグループ番号(括弧でくくった何個目の箇所か)の先頭のポイント値を取り出す。
match-end
指定したグループ番号(括弧でくくった何個目の箇所か)の最後のポイント値を取り出す
buffer-substring
ポイント値で指定した範囲のバッファ中の文字列を返す。match-beginning や match-endと組み合わせて使うと検索したバッファ中の文字列を取り出せる。
save-match-data
match-dataの内容を保存して引数内を評価した後で、match-dataの内容を復帰する。

現在の論理行番号を調べる

(count-lines (point-min) (point))