5.1 KiB
5.1 KiB
title | author | date | url | wordtwit_post_info | categories | |||
---|---|---|---|---|---|---|---|---|
Emacs-Lispの勉強 | kazu634 | 2008-12-14 | /2008/12/14/_1175/ |
|
|
『やさしいEmacs‐Lisp講座』を読んで、Emacs-Lispの勉強をしています。今日は検索系の関数の使い方を学びがてら、練習問題を解こうとしていました(まだ途中)。
下のような行を検索し、曜日のところにカーソルを移動させる関数を書いて
修正時刻: Fri Jan 30 22:15:32 1998
とりあえず書いてみました
(defun my-search-timestamp () (interactive) (save-excursion (let ((key "修正時刻: \\(Sun\\|Mon\\|Tue\\|Wed\\|Thu\\|Fri\\|Sat\\) \\(Jan\\|Feb\\|Mar\\|Apr\\|May\\|Jun\\|Jul\\|Aug\\|Oct\\|Nov\\|Dec\\)")) (goto-line 1) (re-search-forward key) (message "found at line %s" (count-lines (point-min) (point))))))
- defunで関数を定義する
- interactiveはM-xで呼び出せる手続き…というような意味(ここでは)
- save-excursionはポインタの現在位置を記憶しておき、一連の手続きが終わればその位置にポインタを戻す
- letで検索するキーを指定している
- goto-line 1で論理行頭へ
- r(egular)e(xpression)-search-forwardで正規表現を用いた検索
- messageはミニバッファーにメッセージを表示
とりあえず検索して、発見するところまで書けました。