我已经将indent-for-tab-command
命令绑定到了一个键,我希望它像已在使用制表符一样进行智能模式特定的缩进。在所有模式下。它总是插入空格而不是制表符。如何重新配置/重新编程?
我想将Emacs用作完全可定制的编辑器,就像它宣布的那样。这样它就可以像我想要的那样运行。我根本不关心开发人员的意见,而是想要自定义所有内容。这是错误的吗?
并非所有主要模式都以相同的方式处理缩进,因此您可能必须对某些模式进行一些调整才能获得所需的行为。通常,他们会有自己的缩进设置,例如cperl-indent-level
。
在类似C的语言的基于cc-mode
的模式下,类似这样的操作应该可以满足您的要求:
(setq-default indent-tabs-mode t)
(setq-default tab-width 4) ; Assuming you want your tabs to be four spaces wide
(defvaralias 'c-basic-offset 'tab-width)
请注意,使用制表符缩进时会出现一些有趣的情况。如果仅要了解Emacs与其他编辑器如何区别缩进,则值得阅读EmacsWiki indentation basics页面。
编辑:
对于ruby-mode
,这应该可以工作(假设您已经如上所述设置了tab-width
):
(setq ruby-indent-tabs-mode t)
(defvaralias 'ruby-indent-level 'tab-width)
对于sgml-mode
派生的模式,包括html-mode
:
(defvaralias 'sgml-basic-offset 'tab-width)
将(setq-default indent-tabs-mode nil)
放入您的.emacs
文件。