【发布时间】: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