ChangeLog で Todo 管理
EmacsのChangeLog で todo を管理するときにちょっとだけ楽しく - higepon blogを真似て
僕も □(やる)と ■(おわった)で Todo を管理しています。
リンク先のひげぽんさんの作った elisp を使うと
□ や ■ の上にカーソルを置いて C-t で相互に切り替えができて便利です。
しかし、僕はこれをしばらく使っているうちに
カーソルを □ の位置まで移動するのが煩わしくなってきました。
なので、C-t したらその行の □ と ■ が切り替わるように
elisp を少し改良してみました。
(add-hook 'change-log-mode-hook '(lambda () (define-key change-log-mode-map "\C-t" 'toggle-todo-box-at-line))) (defun delete-insert-char(c) (interactive) (progn (delete-char 1 nil) (insert c) (backward-char 1))) (defun swap-char-at-point(a b) (let ((c (char-to-string (char-after)))) (cond ((string-equal c a) (delete-insert-char b)) ((string-equal c b) (delete-insert-char a))))) (defun toggle-todo-box-at-line () (interactive "*") (save-excursion (let ((line-end nil)) (move-end-of-line 1) (setq line-end (point)) (back-to-indentation) (while (< (point) line-end) (swap-char-at-point "□" "■") (forward-char 1)) )))