EmacsのChangeLog で todo を管理するときにちょっとだけ楽しく
僕は ChangeLog で todo を管理しています。
以下の様に箇条書きで、終わっていないものは□、終わったものは■(塗りつぶし)で書いています。(この方式は id:kambara に教わりました。)
-□括弧の数の対応をチェック -□現状把握をして優先度を決める -□すべてのファイルにヘッダをつける -■match.yml/unmatch.yml, translate.yml -■beginで囲まないとテストにならない -■マクロをNodeに変換する -■Node::equalsを実装する
todo を入力するときはコピペか、「やる→□」という対応を IME に登録しておいて入力するのが良いでしょう。
そして todo が完了したら□を塗りつぶすイメージで■にするんですが、そのときの入力が面倒!
と思ったので、以下のような Emacs Lisp を書いてみました。
□の上にカーソルをおいて C-t をすると■になります。(もういちど c-t すると□になります。)
これで todo 消化が楽しくなるかも!
(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))))) ;; change log mode (add-hook 'change-log-mode-hook '(lambda() (define-key change-log-mode-map "\C-t" '(lambda () (interactive) (swap-char-at-point "□" "■")))))