【问题标题】:Emacs backspace only one spaceEmacs 退格只有一个空格
【发布时间】:2014-12-13 00:16:35
【问题描述】:

如何将 Emacs(24.3,OS X Yosemite,安装了 Prelude)配置为始终只退格一个空格?当我在代码块中时,它有时会在没有警告的情况下退格 4 个空格,我最终不得不插入空格。

我所有的代码都缩进了 2 个空格,而不是制表符。

抱歉,这是一个基本问题,刚开始使用 emacs。

【问题讨论】:

  • 不同的模式做不同的事情——所以,也许输入C-h k 然后你的退格键来查看在你使用的任何主要/次要模式下该键附加了什么功能。一旦确定了这一点,您就可以根据自己的喜好调整定义。
  • 说它绑定到命令coffee-dedent-line-backspace,这是`coffee-mode.el中的一个交互式编译的Lisp函数。我将如何修改命令以获得我想要的功能?
  • 有几种方法可以做到这一点——访问这些线程/论坛的人将源代码视为神圣/神圣。我亲自修改了我的源代码——例如,注释掉 ;; 第 236 行(如果您使用与以下链接相同的源代码):github.com/defunkt/coffee-mode/blob/master/coffee-mode.el 我将发布反修改的替代方案-源代码人。从本质上讲,取消coffee-dedent-line-backspace 的键盘映射分配会导致默认的后备将接管。但是,修改源代码需要再次进行字节编译。
  • 注意:我没有为coffee-dedent-line-backspace 的所有调用获取前奏源代码,因为我没有安装它,您可能可以从这里接管。我只看了coffee-mode.el。在前奏设置中总是可能有其他键盘映射分配将coffee-dedent-line-backspace 分配给退格键。这是针对反修改源代码的人:(eval-after-load "coffee-mode" '(progn (define-key coffee-mode-map "\177" nil)))
  • @lawlist 完美运行!如果你把它变成一个答案,我会接受它。

标签: emacs indentation emacs24 backspace


【解决方案1】:

以下代码可以插入到.emacs 或其他类似的初始化文件中。效果将取消之前的coffee-mode 键分配\177,原始发布者已指示为退格键。

(eval-after-load "coffee-mode"
  '(progn
    (define-key coffee-mode-map "\177" nil)))

或者,coffee-mode 的当前版本的第 236 行可以被注释掉 - 即注释掉 (define-key map "\177" 'coffee-dedent-line-backspace) 以便它至少有一个前面的分号。然后,运行M-x byte-compile-file RETcoffee-mode.el 文件的路径,然后运行RET。源代码可以在以下链接中找到:

http://www.github.com/defunkt/coffee-mode/blob/master/coffee-mode.el

【讨论】:

    猜你喜欢
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    相关资源
    最近更新 更多