【问题标题】:How to rebind C-a and C-e in emacs back to Home and End on mac?如何将emacs中的C-a和C-e重新绑定回Mac上的Home和End?
【发布时间】:2014-11-06 09:46:30
【问题描述】:

我在我的 eMac 上使用罗技电脑键盘,并且想像往常一样使用 Home 和 End 按钮。我已经为 mac 终端反弹了它们。并且想在 emacs 中重新绑定它们。

【问题讨论】:

  • 这个问题有点不清楚。要将 Home 绑定到 beginning-of-line,还是要更改 C-a 的绑定? (我很难相信您在 eMac 上运行 OS X Server。)
  • 对不起。没有标签mac-os-x,所以我使用了存在的标签。现在我还看到了osx 标签。已更正。真诚地说。我的 emacs 中不需要 C-a,因为它与 screen 工具冲突。但主要目标是绑定 Home/End 键。
  • 我在使用时总是在screen而不是emacs中反弹。 (我为 tmux 提供了screen;tmux 和 iTerm 2 是一个非常好的组合)。另外,C-a 在所有 Cocoa 文本中都是行首移动,这有助于保持一致。

标签: macos emacs osx-mavericks emacs24


【解决方案1】:

像这样:

(global-set-key [home] 'move-beginning-of-line)
(global-set-key [end] 'move-end-of-line)

对于 Terminal.app,它的默认键绑定为自己抓取 HomeEnd(滚动到终端输出的开头和结尾),并让 Shift-HomeShift-End 到应用程序。您可以在终端首选项中的“设置”->“键盘”下进行切换。

【讨论】:

  • 谢谢。工作但部分。不适用于 Terminal.app :(
  • 什么意思?我已经在 Settings->Keyboard [左上角的箭头](或 mykeyboard 上的 home)中绑定到与 shift-home bound (\033[H) 相同的值并结束对应。所以我的 home/end 键在 shell 中运行良好。但在 emacs 中不是很好:(
  • 嗯,这很奇怪。如果你输入 C-h c 然后点击 home/end 键,你会得到什么?
【解决方案2】:

在您的 .emacs 文件中输入如下内容:

(add-hook 'after-init-hook
      '(lambda ()


         (define-key global-map [C-home] 'beginning-of-buffer)
         (define-key global-map [C-end] 'end-of-buffer)
         (define-key global-map [home] 'beginning-of-line)
         (define-key global-map [end] 'end-of-line)


         ;;; much more semi private stuff deleted

         ))

它自古以来就对我有用。

【讨论】:

    猜你喜欢
    • 2014-06-05
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    相关资源
    最近更新 更多