Closed jiangshanyu closed 1 month ago
I suspect this is something local to your configuration, because I can't reproduce this locally. It sounds like the bindings are triggering commands in diff-hl-mode
, but for me those two bindings just cause the normal org-mode actions.
Hummm, I tried the following:
GNU Emacs 29.2, used in terminal, on Sonoma 14.4.
I can't get those 2 key combinations to work at all in Terminal with Emacs 29.3, Sonoma 14.4. Emacs sees them as <up>
which is mapped to previous-line
.
(In GUI mode, for me, option-shift-uparrow is S-up
that calls (org-shiftup)
as I expected: it will swap list rows or kill table rows.
option-uparrow is M-<up>
that maps to (org-metaup)
that will swap two items (lists, subtrees, tables , paragraphs). I expect that is what is broken for you.)
If you still need help,
C-h k
(describe-key)
for your key combinations?$HOME/.zshrc
)Thanks @dcorking! Sorry for my late in reply -- I was working towards several deadlines and then forgot about it.
What are the outputs of
C-h k
(describe-key)
for your key combinations? Please find the output below: "runs the command diff-hl-previous-hunk (found in diff-hl-mode-map), which is an interactive byte-compiled Lisp function in ‘diff-hl.el’. It is bound to M-ESC and C-x v [. (diff-hl-previous-hunk) Go to the beginning of the previous hunk in the current buffer. [back] "Does everything work as expected in GUI mode? I don't have GUI installed, but the terminal version works before me updating to the current version of emacs. (By the way, do you have "Use Option as Meta Key" set? Yes, I have this set already.
Your paste missed out the beginning of the output of C-h k
. However the parts you show make it pretty clear that your Emacs is not being sent the keystrokes you typed. I think you must have something in your terminal, shell or keyboard driver that is mapping option+shift+uparrow, or just option+uparrow to either option-esc or C-x v [ . (The first part will tell you which key strokes Emacs actually received.)
To diagnose your keyboard driver, I think the virtual keyboard might help you.
I'm not a zsh user, but I suggest you also check for relevant bindkey
entries in your plugins and customizations.
Alternatively, and probably simpler than all that, add a new global-set-key
to 'org-metaup
in your init-local.el
.
Just for info mine looks like this in Linux and macOS (whether in no-window-system mode or GUI, for example if I start it with emacs -nw -q
so bypassing all customizations.):
M-<up> runs the command org-metaup (found in org-mode-map), which is
an interactive byte-compiled Lisp function in ‘org.el’.
org.el
is built in to Emacs: purcell/emacs.d doesn't do anything special with this keybinding.
Hi @dcorking
Thanks for your suggestions. I at the end disabled the keybindings in diff-hl to resolve the issue, with the following code added in my init-local.el
(with-eval-after-load 'diff-hl ;; Unbind M-ESC and C-x v [ (define-key diff-hl-mode-map (kbd "M-ESC") nil) (define-key diff-hl-mode-map (kbd "C-x v [") nil))
Yay, glad you figured this out. Thanks for the helpful replies, @dcorking!
Under emacs org mode, when trying to swap lists (option+shift+uparrow, or just option+uparrow), receiving a user-error: No further hunks found.