32nd Diary

トップ | 最新 | 過去の日記 | もっと過去の日記

2006年
1月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
めーるあどれす
ruby -rbase64 -e'puts Base64.decode64 %q(dGFrYW5vMzJAZ21haWwuY29t)'



2006-01-26 (Thursday) [長年日記]

[Emacs][jus] Emacs再入門

明日(この日記を書いている時点では今日), Emacsの勉強会があります.

ボクも参加する予定です.よろしくお願いします.

[Emacs][Lisp][jus] AI編集

ActionItem(jusのToDoリストのようなもの)を編集するための elispを作ってみた.

ai-toggle-statusを実行すると次の3つの状態のトグルをする.

       [0601.xx] ToDo1 (name1)
done   [0601.xx] ToDo2 (name1)
cancel [0601.xx] ToDo3 (name1)

マイナーモードでC-tなどに割り当てればいいかな.

ai-number-itemsは以下の最初の行にカーソルを置いて実行すると,

       [xxxx.xx] ToDo1 (name1)
       [xxxx.xx] ToDo2 (name2)
       [xxxx.xx] ToDo3 (name3)

次のように変換する.

       [xxxx.01] ToDo1 (name1)
       [xxxx.02] ToDo2 (name2)
       [xxxx.03] ToDo3 (name3)

つまり,インクリメントしながら,xxを数字で埋める.

いや〜,久しぶりにelisp書くとへぼいし,時間かかるわで大変ですわ. 以下,ソースコードです.

(defun ai-toggle-status ()
  "Toggle ActionItem Status"
  (interactive "")
    (let ((bol (point-at-bol))
	   (eol (point-at-eol))
	   (begin-with-none)
	   (begin-with-done)
	   (begin-with-cancel))
	   (save-excursion
	     (setq begin-with-none
		  (progn (goto-char bol)
			 (search-forward-regexp "^ " eol t)))
	     (setq begin-with-done
		  (progn (goto-char bol)
			 (search-forward-regexp "^done" eol t)))
	     (setq begin-with-cancel
		  (progn (goto-char bol)
			 (search-forward-regexp "^cancel" eol t)))
	     )
	   (cond (begin-with-none (ai-change-status "done"))
		 (begin-with-done (ai-change-status "cancel"))
		 (begin-with-cancel (ai-change-status "      ")))
	   )
    )


(defun ai-change-status (status)
  "Change ActionItem Status"
  (save-excursion
    (goto-char (point-at-bol))
    (let ((margin (- (search-forward " ") (point-at-bol))))
      (goto-char (point-at-bol))
      (delete-char margin)
      (insert (make-string margin (string-to-char " ")))
      (goto-char (point-at-bol))
      (delete-char (length status))
      (insert status)
      )))

(defun ai-number-items (&optional num)
  "Number ActionItems"
  (interactive "")
  (defun ai-number-item (n)
    (let ((eol (point-at-eol))
	  (bol (point-at-bol)))
      (goto-char bol)
      (if (search-forward-regexp "\\[....\." eol t)
	  (progn (delete-char 2)
		 (insert (format "%02d" n))
		 (not nil))
	nil)
      )
    )
  (if num
      (if (ai-number-item num)
	  (progn (next-line 1)
		 (ai-number-items (+ num 1))))
    (ai-number-items 1))
  )

[Moe] かしまし(3)

やすなちゃんのキャラクター紹介的エピソード.

これでヒロインとサブヒロインの紹介が終わったはずなので, 来週からは本格的にストーリーに突入するのかな.

本日のPingbacks(全0件)