Why don't Shift+arrow bindings work in clojure-mode in emacs terminal?

Viewed 585

If I runs emacs in a terminal (i.e start emacs in iTerm2 with emacs -nw) using windmove and it's default bindings, I should be able to navigate between windows using various combinations of Shift + → ← ↑ ↓, Also paredit has bindings that involve Ctrl/Meta + → ← ↑ ↓, these all work fine in (say) an elisp mode buffer.

Looks like the arrow keys functionality relies on emacs decoding terminal escape sequences, via (I think) the input-decode-map

However, if I set the major mode as clojure-mode then the decoding of the escape sequences appears to be disabled (or overwritten). When I execute those bindings I just get the escape sequence instead.

What's going on with the bindings in clojure-mode ?

Versions:

  • emacs 24.3.1 (have tried maxosxforemacs.com version and homebrew)
  • clojure-mode 20131117.2306 (have tried other versions)
  • OSX 10.8.5
  • iTerm2 1.0.0.20131124

(disclaimer: I raised this as an issue on clojure-mode, but no solution is forthcoming)

UPDATE 2013/12/10: To be absolutely clear: this problem is specific to clojure-mode. emacs -nw in iTerm + arrow keys works fine in other major modes. I'm sure I'm doing something silly that is causing this, I'd like to know what.

2 Answers
Related