16 lines
576 B
EmacsLisp
16 lines
576 B
EmacsLisp
(defun ledger-add-entry (entry)
|
|
(interactive
|
|
(list (read-string "Entry: "
|
|
(format-time-string "%m.%d " (current-time)))))
|
|
(let ((args (mapcar 'shell-quote-argument (split-string entry))))
|
|
(shell-command
|
|
(concat "ledger entry "
|
|
(mapconcat 'identity args " ")) t)
|
|
(delete-char 5)
|
|
(exchange-point-and-mark)))
|
|
|
|
(define-derived-mode ledger-mode text-mode "Ledger"
|
|
"A mode for editing ledger data files."
|
|
(setq comment-start ";" comment-end nil)
|
|
(let ((map (current-local-map)))
|
|
(define-key map [(control ?c) ?n] 'ledger-add-entry)))
|