我喜欢Emacs,但不喜欢缩进:无论是标签和空格的无法控制的混合还是空格((setq indent-tabs-mode nil)
)。
我希望Emacs做缩进:
仅使用标签。
缩进到固定数量的地方(有时不是6个,其他时间是8个,其他地方是4个)。
能够将一个级别的缩进设置为等于4(或2)个空格。
如果我更改制表位的值,则所有新打开或重新加载的文件都应使用新值(或者只有重新启动Emacs才能影响此更改?)
以上所有可能吗? .emacs
或包中的某些设置?
大多数IDE(例如Eclipse)都提供上述功能。
答案 0 :(得分:8)
smart tabs会在上下文中插入制表符和空格。
就我个人而言,我只使用空格来缩进和对齐(至少对我自己的项目而言)。 Here是关于emacswiki的另一篇文章,我发现这个主题非常有用
答案 1 :(得分:3)
对于C / C ++ / Java,您可以尝试在模式挂钩中添加相同的tab-width,indent-level和c-basic-offet:
(defun my-c-mode-common-hook ()
(setq c-indent-level 3
c-brace-offset -3)
(setq c-basic-offset 3)
(setq-default tab-width 3)
(setq tab-width 3))
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
这使得当你处于cc模式时,标签和缩进是相同的,因此emacs将始终选择空格上的标签。另请参阅Indenting C
可以在其他位置设置tab-width
,您可以将其应用于其他模式以及缩进长度变量,例如python's python-indent。
编辑:
实际上,看起来像kindahero的链接几乎是这样的:http://www.emacswiki.org/SmartTabs
答案 2 :(得分:3)
我使用标签进行缩进。但是当其他人使用不同的编辑器时,他们可以看到缩进消失了。因此,您可以选择使用制表符缩进的代码段并运行“M-x untabify”。这将使用空格替换选项卡,因此对于使用不同编辑器的用户而言,第一个所述问题将不存在。