I've been unsuccessful in getting Emacs to switch from 8 space tabs to 4 space tabs when pressing the TAB in buffers with the major mode text-mode
. I've added the following to my .emacs
:
(setq-default indent-tabs-mode nil)
(setq-default tab-width 4)
;;; And I have tried
(setq indent-tabs-mode nil)
(setq tab-width 4)
No matter how I change my .emacs
file (or my buffer's local variables) the TAB button always does the same thing.
- 如果上面没有文字,则缩进8 spaces
- 如果上一行有文本,则缩进到第二个单词的开头
尽管我非常喜欢 Emacs,但这却变得很烦人。有没有办法让 Emacs 在上一行没有文本时至少缩进 4 个空格?
简短回答:
关键点是告诉 emacs 在缩进时插入你想要的任何内容,这是通过更改 indent-line-function 来完成的。改成插入一个制表符再把制表符改成4个空格比改成插入4个空格要容易一些。以下配置将解决您的问题:
(setq-default indent-tabs-mode nil)
(setq-default tab-width 4)
(setq indent-line-function 'insert-tab)
解释:
From 缩进由主模式控制 @ emacs 手册 http://www.gnu.org/s/emacs/manual/html_node/elisp/Mode_002dSpecific-Indent.html#Mode_002dSpecific-Indent:
各专业的重要职能
mode 是自定义的关键
为语言正确缩进
编辑。
[...]
缩进行函数变量是
(和
各种命令,例如调用时
indent-region) 缩进当前
线。命令
indent-according-to-mode 不再起作用
而不是调用这个函数。
[...]
默认值是相对缩进
对于许多模式。
来自 indent-relative @ emacs 手册:
相对缩进 空格移至下一个下方
上一个非空行的缩进点。
[...]
如果前一个非空行没有
缩进点超出列点
开始于,“tab-to-tab-stop”完成
反而。
只需将 indent-line-function 的值更改为 insert-tab 函数并将制表符插入配置为 4 个空格即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)