刚刚习惯在OS X上的emacs中使用paredit - C-怎么不起作用?

时间:2011-06-07 04:59:13

标签: macos emacs editor lisp paredit

我最近在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?

5 个答案:

答案 0 :(得分:8)

值得的是,在我的Mac上 C-< right> C-< left> 绑定到Mission Control并向右和向左移动空格。

话虽如此, C-Shift-< right> C-Shift-< left> 似乎可以做到这一点,我可以很好地啜饮和扒在与paredit的emacs上。

答案 1 :(得分:4)

IIRC,Control和Shift的修饰符组合无法发送到终端中的Emacs。 C-)需要shift键,因此它超出范围。我不相信任何数量的终端调整都会改变这一点。

我相信默认情况下paredit-forward-slurp-sexp也会绑定到C-<right>,这在终端中应该可以正常工作,所以也许您可以训练手指使用该密钥。

答案 2 :(得分:3)

基于Cosmin's blog我在iTerm2中使用它。

  1. 打开偏好设置&gt;个人资料&gt;键即可。 (您可能希望复制默认配置文件并更改副本。)
  2. 点击配置文件快捷键下的+
  3. 键入Ctrl+)(ctrl + shift + leftparen)。
  4. 对于操作,请选择发送转义字符
  5. [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。