C-S-DEL(一次杀掉整行)在我的emacs中不起作用

时间:2015-08-15 16:39:54

标签: macos emacs terminal iterm2

This表示C-S-DEL绑定到kill-whole-line命令,一次杀死整行。我使用emacs 24.5.1在我的macbook上尝试过它,然而,它根本不起作用。然后我使用C-h k C-S-DEL检查按下此热键时发生的情况。它表示只识别DEL以外的Ctrl + Shift + DEL密钥。

我通过Homebrew安装这个emacs(版本24.5.1)并在iTerm2中运行它。它没有GUI版本(我更喜欢在终端中使用),并且只是通过emacs命令启动。

如何配置我的emacs以支持C-S-DEL

1 个答案:

答案 0 :(得分:1)

这是可能的,但它有点笨拙。使用Karibinder等工具重新映射C-S-delete,同时将终端用于终端确实接收的密钥序列。您可以M-x describe-unbound-keysunbound.el一起使用来查找此类密钥。然后,在emacs配置中,您应该将这些键重新映射到适当的函数。

以下是一个示例,说明如何将C-S-delete重新加载到C-x n M-[ u并使用Karibinder将其放入private.xml文件中。 Karabinder的documentation非常好。

  <appdef>
    <appname>TERMINAL</appname>
    <equal>com.apple.Terminal</equal>
  </appdef>

  <item>
    <name>Fix C-S-delete Emacs</name>
    <identifier>private.m_s_delete_emacs</identifier>
    <only>TERMINAL</only>
    <autogen>
        __KeyToKey__
        KeyCode::DELETE, ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L,
        KeyCode::X, ModifierFlag::CONTROL_L, KeyCode::N, KeyCode::BRACKET_LEFT, ModifierFlag::OPTION_L, KeyCode::U
    </autogen>
  </item>

然后在你的emacs配置中:

(global-set-key (kbd "C-x n M-[ u") 'kill-whole-line)

也许有更多OS X用户喜欢在GUI版本上使用emacs的终端版本。在这种情况下,一个全面的Karbiner&amp;社区可以创建emacs配置以覆盖使用终端不支持的修饰符的所有键序列。到目前为止,我还没有相信的东西,但如果我发现任何东西或是否有东西,我会更新我的答案。