我最近在Mac OS X Leopard中建立了一个Common Lisp编程环境。我发现一个不可或缺的emacs模块是paredit。 Paredit尽其所能帮助我更轻松地纠缠我的Lisp代码,但我遇到了一些陷阱。
绑定到paredit-forward-slurp-sexp
的 C-)不是向前啜饮的性别,而是回应数字0
。我正在使用Mac,在iTerm和终端之间交替使用。两个应用程序都存在同样的问题。
我在GNU Emacs的GUI版本中尝试了相同的组合键,而且,它工作正常。不幸的是,Emacs的图形版本无法满足我的需求;我想继续使用我的基于iTerm的装备。
所以我问你,stackoverflow:我需要做些什么来让C-)组合注册到iTerm?
答案 0 :(得分:8)
值得的是,在我的Mac上 C-< right> 和 C-< left> 绑定到Mission Control并向右和向左移动空格。
话虽如此, C-Shift-< right> 和 C-Shift-< left> 似乎可以做到这一点,我可以很好地啜饮和扒在与paredit的emacs上。
答案 1 :(得分:4)
C-)
需要shift键,因此它超出范围。我不相信任何数量的终端调整都会改变这一点。
我相信默认情况下paredit-forward-slurp-sexp
也会绑定到C-<right>
,这在终端中应该可以正常工作,所以也许您可以训练手指使用该密钥。
答案 2 :(得分:3)
基于Cosmin's blog我在iTerm2中使用它。
+
。 Ctrl+)
(ctrl + shift + leftparen)。 [1;5C
放入文本框中。 答案 3 :(得分:2)
我预感你的iTerm /终端程序实际上无法发送 C - ),因为ASCII中没有这样的字符,我很确定它上面没有这样的序列VT100。
但您可以自己验证。在终端模拟器中运行emacs。输入 C - )。然后键入 C-h l (“view-lossage”)。这将显示Emacs看到的最后几百个键。在键入非控件)后尝试相同的操作,看看它们是否不同。如果没有,除非你能配置iTerm / Terminal以不同方式将它们发送给Emacs,否则你运气不佳。
也就是说,您可以将其他一些密钥绑定到paredit-forward-slurp-sexp
。
答案 4 :(得分:2)
我遇到了与paredit的替代 C-&lt; right&gt; 绑定同样的麻烦,发现tmux导致了我的麻烦 - 基本上tmux包含了 C - 只是传递&lt; right&gt; 。
我在https://unix.stackexchange.com/a/34484找到了解决方案,其中包括添加
set-window-option -g xterm-keys on
到我的〜/ .tmux.conf。