diff options
| author | Somelauw <Somelauw> | 2018-05-27 21:19:09 +0200 |
|---|---|---|
| committer | Somelauw <Somelauw> | 2018-05-27 21:19:09 +0200 |
| commit | d2232c0660a64d423a854acf250f1c30a2c74195 (patch) | |
| tree | 09f642619d6c4880266e3aca13bf6f81de5d1c39 | |
| parent | b6d652a9163d3430a9e0933a554bdbee5244bbf6 (diff) | |
Make :wq do the right thing for org-src-bufferssave-and-quit-org-src-buffer
First it saves changes, then it exits
| -rw-r--r-- | evil-org.el | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/evil-org.el b/evil-org.el index 4ef96ae..1144219 100644 --- a/evil-org.el +++ b/evil-org.el @@ -797,15 +797,26 @@ Optional argument THEME list of themes. See evil-org-keytheme for a list of valu evil-org-mode-map))) ;;; vim-like confirm/abort for capture and src -;;; Taken from mwillsey (Max Willsey) on https://github.com/syl20bnr/spacemacs/pull/7400 +(defmacro evil-org-save-and-closer (close-cmd) + "Create a command to save and close from a special org buffer." + (let ((newcmd (intern (concat "evil-org-save-and-" (symbol-name close-cmd))))) + `(progn + (defun ,newcmd () + ,(concat "Call `evil-write' followed by `" (symbol-name close-cmd) "'.") + (interactive) + (call-interactively #'evil-write) + (call-interactively #',close-cmd)) + #',newcmd))) + +;; Taken from mwillsey (Max Willsey) on https://github.com/syl20bnr/spacemacs/pull/7400 (with-eval-after-load 'org-capture (define-key org-capture-mode-map [remap evil-save-and-close] 'org-capture-finalize) (define-key org-capture-mode-map [remap evil-save-modified-and-close] 'org-capture-finalize) (define-key org-capture-mode-map [remap evil-quit] 'org-capture-kill)) (with-eval-after-load 'org-src - (define-key org-src-mode-map [remap evil-save-and-close] 'org-edit-src-exit) - (define-key org-src-mode-map [remap evil-save-modified-and-close] 'org-edit-src-exit) + (define-key org-src-mode-map [remap evil-save-and-close] (evil-org-save-and-closer org-edit-src-exit)) + (define-key org-src-mode-map [remap evil-save-modified-and-close] (evil-org-save-and-closer org-edit-src-exit)) (define-key org-src-mode-map [remap evil-quit] 'org-edit-src-abort)) (with-eval-after-load 'org-table |
