8

我最近在 Mac OS X Leopard 中建立了一个 Common Lisp 编程环境。我发现不可或缺的一个 emacs 模块是 paredit。Paredit 正在尽其所能帮助我更轻松地处理我的 Lisp 代码,但我遇到了一些陷阱。

绑定到 的 C-)paredit-forward-slurp-sexp不是向前 slurping sexps 而是呼应数字0。我正在使用 Mac,在 iTerm 和终端之间交替使用。两个应用程序中都存在相同的问题。

我在 GNU Emacs 的 GUI 版本中尝试了相同的组合键,瞧,它奏效了。不幸的是,Emacs 的图形版本不能满足我的需要;我想继续使用我的基于 iTerm 的装备。

所以我问你,stackoverflow:我必须做什么才能让 C-) 组合在 iTerm 中注册?

4

5 回答 5

8

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

话虽如此,C-Shift-<right>并且C-Shift-<left>似乎做到了,我可以在带有 paredit 的 emacs 上很好地啜饮和呕吐。

于 2016-01-21T13:34:02.757 回答
5

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

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

于 2011-06-07T16:09:01.990 回答
4

基于Cosmin 的博客,我得到了这个在 iTerm2 中工作。

  1. 打开Preferences > Profiles > Keys。(您可能想要复制默认配置文件并更改副本。)
  2. 单击配置文件快捷键+下的 : 。
  3. 键入Ctrl+)(ctrl+shift+leftparen)。
  4. 对于动作选择发送转义字符
  5. 放入[1;5C文本框。
于 2014-09-17T21:10:00.760 回答
2

我有一种预感,您的 iTerm / 终端程序实际上无法发送C-),因为 ASCII 中没有这样的字符,而且我很确定 VT100 上没有它的序列。

不过,您可以自己验证这一点。在终端模拟器中运行 emacs。键入C-)。然后输入C-h l(“view-lossage”)。这将向您显示 Emacs 看到您键入的最后几百个键。键入非控件后尝试相同的操作)以查看它们是否不同。如果没有,除非您可以配置 iTerm / Terminal 以不同的方式将它们发送到 Emacs,否则您将不走运。

也就是说,您始终可以将其他一些键绑定到paredit-forward-slurp-sexp.

于 2011-06-07T05:09:37.160 回答
2

我在使用 paredit 的备用绑定时遇到了同样的问题C-<right>,发现 tmux 引起了我的麻烦 - 基本上 tmux 包含了C-并且只是传递了<right>.

我在https://unix.stackexchange.com/a/34484找到了解决方案,它包括添加

set-window-option -g xterm-keys on

到我的 ~/.tmux.conf。

于 2013-10-30T01:34:49.623 回答