emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals-release/org ccd513a: lisp/org.el: Don't let `visual-lin


From: ELPA Syncer
Subject: [elpa] externals-release/org ccd513a: lisp/org.el: Don't let `visual-line-mode' override Org's keybindings
Date: Sat, 1 May 2021 16:57:11 -0400 (EDT)

branch: externals-release/org
commit ccd513a3c5b732561ea1b1d6020f5a05c1565205
Author: Bastien <bzg@gnu.org>
Commit: Bastien <bzg@gnu.org>

    lisp/org.el: Don't let `visual-line-mode' override Org's keybindings
    
    * lisp/org.el (org-mode): Don't let `visual-line-mode' override
    Org's keybindings for C-a, C-e and C-k.
    
    Reported-by: Gustavo Barros <gusbrs.2016@gmail.com>
    Link: https://orgmode.org/list/87a6zkv3m2.fsf@gmail.com/
---
 lisp/org.el | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/lisp/org.el b/lisp/org.el
index abe92eb..8730cd3 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -4903,6 +4903,18 @@ The following commands are available:
      (when org-startup-numerated (require 'org-num) (org-num-mode 1))
      (when org-startup-indented (require 'org-indent) (org-indent-mode 1))))
 
+  ;; Add a custom keymap for `visual-line-mode' so that activating
+  ;; this minor mode does not override Org's keybindings.
+  ;; FIXME: Probably `visual-line-mode' should take care of this.
+  (let ((oldmap (cdr (assoc 'visual-line-mode minor-mode-map-alist)))
+        (newmap (make-sparse-keymap)))
+    (set-keymap-parent newmap oldmap)
+    (define-key newmap [remap move-beginning-of-line] nil)
+    (define-key newmap [remap move-end-of-line] nil)
+    (define-key newmap [remap kill-line] nil)
+    (make-local-variable 'minor-mode-overriding-map-alist)
+    (push `(visual-line-mode . ,newmap) minor-mode-overriding-map-alist))
+
   ;; Activate `org-table-header-line-mode'
   (when org-table-header-line-p
     (org-table-header-line-mode 1))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]