/ / 最新

swk's log - chalow の他記事参照文字列を生成する elisp

2006-10-22

* chalow の他記事参照文字列を生成する elisp [chalow][logging] 2 users

chalow の「Referrer (Inside)」機能を常用している話は以前書いた [2006-05-05-1]

でもこの [YYYY-MM-DD-I] みたいな文字列を書くのって面倒くさくないすか? エディタ上で作業するなら該当記事を探して,日付を確認して,何番目の記 事かを確認して…になるわけだけど面倒くさすぎる.そんなわけで,ブラウ ザで自分のページを開いて clsearch.cgi で検索してコピーペースト…って のが最近の自分的主流なのですが,やっぱり作業は emacs の中で閉じてい る方が楽だ.


とここまで書いて,w3m.el でも使えばいいんじゃね? とか思ったがそれは 気づかなかったことにして,


この [YYYY-MM-DD-I] な文字列を kill-ring につっこむ elisp を書いてみ ました.勢いだけで書いたので処理が汚いのは勘弁して頂くとして,という かあまりテストしてないのですが,一応動いている模様なので貼っておく.

(defvar chalow-date-regexp "^[01-9]+-[01-9][01-9]-[01-9][01-9]")
(defvar chalow-itembullet-regexp "^\t\\*")
(defun chalow-date-to-datestr (str) str)

(defun chalow-kill-datestr ()
  (interactive)
  (save-excursion
    (let ((curpos (point)))
      (if (re-search-backward chalow-date-regexp nil t)
          (let ((itemnum 1)
                (dstr (buffer-substring (match-beginning 0) (match-end 0))))
            (goto-char curpos)
            (if (not (re-search-forward chalow-date-regexp nil t))
                (goto-char (point-max)))
            (while (re-search-backward chalow-itembullet-regexp (1+ curpos) t)
              (setq itemnum (1+ itemnum)))
            (kill-new (format "[%s-%d]" (chalow-date-to-datestr dstr) itemnum))
            (message (car kill-ring)))
        (message "date not found")))))

Ctrl-S とかで (別に他の何でもいいですが) 該当記事を探して,その記事 の途中のどこかで M-x chalow-kill-datestr すると kill-ring に [YYYY-MM-DD-I] が追加されるので,Ctrl-Y で貼りつけます.

先頭の方の変数とかをいじれば,ChangeLog とは違うフォーマットで書いて いる場合にもある程度適用できるんではないかと思います.(というか私が そうしてます)

[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [haepeaodqw] NEW DELHI: Investigators believe an e ma... (2007-11-26 08:47:57)

* [pyfxrshkmn] 1 quarterback before suffering a knee in... (2007-11-25 12:50:43)

* [mvxqgdifga] Dick\'s Sporting Goods said Tuesday that... (2007-11-24 12:01:07)

* [cebcioacfi] Citroen\'s Sebastien Loeb concluded the ... (2007-11-22 15:16:30)

* [fwikcolokt] "Combined with Chrysler\'s Multi di... (2007-11-19 13:44:56)

* ...

最終更新時間: 2007-08-20 03:32


Shingo W. Kagami - swk(at)kagami.org