diff options
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/ledger-mode.el | 2 | ||||
-rw-r--r-- | lisp/ledger-navigate.el | 11 |
2 files changed, 8 insertions, 5 deletions
diff --git a/lisp/ledger-mode.el b/lisp/ledger-mode.el index 9376e2e0..1eab0f3b 100644 --- a/lisp/ledger-mode.el +++ b/lisp/ledger-mode.el @@ -262,7 +262,7 @@ With a prefix argument, remove the effective date. " (define-key map [(control ?c) (control ?o) (control ?r)] 'ledger-report) (define-key map [(control ?c) (control ?o) (control ?s)] 'ledger-report-save) - (define-key map [(meta ?p)] 'ledger-navigate-prev-xact) + (define-key map [(meta ?p)] 'ledger-navigate-prev-xact-or-directive) (define-key map [(meta ?n)] 'ledger-navigate-next-xact-or-directive) map) "Keymap for `ledger-mode'.") diff --git a/lisp/ledger-navigate.el b/lisp/ledger-navigate.el index 5da5cf8d..d954222f 100644 --- a/lisp/ledger-navigate.el +++ b/lisp/ledger-navigate.el @@ -54,11 +54,14 @@ beginning with whitespace" (ledger-navigate-start-xact-or-directive-p))) (forward-line)))) -(defun ledger-navigate-prev-xact () +(defun ledger-navigate-prev-xact-or-directive () "Move point to beginning of previous xact." (interactive) - (ledger-navigate-beginning-of-xact) - (re-search-backward ledger-xact-start-regex nil t)) + (let ((context (car (ledger-context-at-point)))) + (when (equal context 'acct-transaction) + (ledger-navigate-beginning-of-xact)) + (beginning-of-line) + (re-search-backward "^[[:graph:]]" nil t))) (defun ledger-navigate-beginning-of-xact () "Move point to the beginning of the current xact" @@ -75,7 +78,7 @@ beginning with whitespace" "Move point to end of xact." (interactive) (ledger-navigate-next-xact-or-directive) - (backward-char) + (re-search-backward "^[ \t]") (end-of-line) (point)) |