我正在使用 OSX 10.9、iTerm2、Emacs Prelude 和 Clojure 以及所有最相关的模式,smartparens
. 目前很好。
简短的版本是:有没有人找到一种和谐的方式将所有这些与 OSX Mission Control 一起使用?
更长的版本是:我希望能够使用类似的命令sp-forward-slurp-sexp
,它的默认键绑定为C-<right>
,更广为人知的是“通过任务控制正确切换空间”的默认操作系统级快捷方式。我可以很容易地重新映射它(比如,到C-Shift-<right>
)——但现在,我发现它C-<right>
实际上似乎在发送类似M-[1;4A
. 而不是触发sp-forward-slurp-sexp
,你得到sp-wrap-with-pair "["
。嗯。
我挖掘了这篇关于重新映射键的论文,这非常彻底,但也涉及重新映射相当多的东西,然后禁用paredit
正在侦听M-[
命令的部分。虽然这在技术上似乎可行,但我实际上更喜欢sp-wrap-with-pair
启用。也许更好的选择是接受理论上的等价物C-(
——除了 iTerm2 仅将其解释为字面量 9 和C-)
0。这篇 SO 帖子仔细研究了这个问题,并得到了一个诱人的评论,暗示C-(
并C-)
简单地重新映射到 emacs 可以映射回的转义序列C-(
和C-)
- 但坦率地说,我不知道如何弄清楚应该是什么转义序列。
把它全部带回家:有没有人找到一种方法来一起使用所有这些工具(Mission Control、iTerm2、Emacs Prelude、smartparens),而无需重新连接或禁用其中部分或大部分工具?或者:谁拥有最优雅的重新布线?有人想出C-)
-to-escape-sequence-back-to-C-)
技巧了吗?
编辑
在黑暗中刺伤,我做了以下事情: 1. 将 iTerm 设置为发送键盘快捷键 Ctrl-Shift-0 ( C-S-)
) 的转义序列SPRTPRN
。2. 把它放在我的 emacs 配置中:
(define-key input-decode-map "\eSPRTPRN" [C-right-paren])
(global-set-key [C-right-paren] (kbd "C-)"))
......它不起作用,但我有预感我越来越近了。我认为。
再次编辑
我意识到了一些事情:Shift 在这里不起作用的想法对我来说没有意义。至少在我的 emacs 安装中,M-< 和 M-> 分别跳转到缓冲区的开头和结尾——要使用这些命令,我必须实际按下Meta-Shift-<。嗯。