【问题标题】:How to customize Emacs key bindings for going to specific line / end of buffer如何自定义 Emacs 键绑定以转到特定行/缓冲区末尾
【发布时间】:2014-04-22 09:13:30
【问题描述】:

我想自定义 Emacs 以便按下

ESC : n RET

带我到行号n

ESC : $ RET

带我到最后一行。 (这就是 vi 编辑器的工作原理。)

如何在我的 Emacs 配置文件中实现这一点?目前我的.emacs 中有这个:

(global-set-key (kbd "M-9") 'prev-window)
(global-set-key (kbd "M-0") 'other-window)

我不想使用任何现成的解决方案(例如邪恶),因为它们臃肿且与我现有的快捷方式混为一谈。

【问题讨论】:

  • 严重质疑禁用M-的内置行为是否明智:

标签: emacs elisp customization text-editor key-bindings


【解决方案1】:

把它放到一个文件中并加载它(加载意味着执行):

(defun vi-goto-line (arg)
 (interactive "sLine:")
 (message arg)
 (if (string= "$" arg)
  (end-of-buffer)
  (goto-line (string-to-int arg))
 )
)

(global-set-key (kbd "M-:") 'vi-goto-line)

要加载它,您可以使用 M-xload-file 然后以交互方式输入文件的路径。

请记住,组合键 M-:(与 ESC: 相同)在 Emacs 中已经有意义,所以现在它被隐藏了。

当然,您也可以通过将(load-file "/path/to/my/file") 放入.emacs 或将这些行直接放入您的.emacs 文件(或任何其他被加载的配置文件)中,从您的.emacs 加载文件

【讨论】:

  • 为什么M-x 会被您提供的代码掩盖? OP 想使用ESC :,而不是ESC x :)
  • 啊,错字,是的。当然,M-: 会被隐藏!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-22
  • 1970-01-01
  • 2011-07-26
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多