Ghe*_*man 6 emacs tabs elisp space indentation
我已经将一个indent-for-tab-command命令绑定到一个键,我希望它能够像使用标签一样进行智能模式特定的缩进.在所有模式中.它总是插入空格而不是制表符.如何重新配置/重新编程呢?
我想将Emacs用作完全可定制的编辑器,因为它已宣布为.这样它的行为就像我想要的那样.我根本不关心开发人员的意见,并希望自定义一切.这是错的吗?
并非所有主要模式都以相同的方式处理缩进,因此您可能必须对某些模式进行一些调整才能获得所需的行为.通常他们会有自己的缩进设置,例如cperl-indent-level.
在cc-mode类似C语言的基础模式中,类似这样的东西应该做你想要的:
(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)
Run Code Online (Sandbox Code Playgroud)
请注意,使用制表符进行缩进时可能会出现一些有趣的情况.EmacsWiki 缩进基础页面值得一读,如果只是为了理解Emacs如何处理缩进与其他编辑器不同.
编辑:
因为ruby-mode,这应该工作(假设你已经设置tab-width如上):
(setq ruby-indent-tabs-mode t)
(defvaralias 'ruby-indent-level 'tab-width)
Run Code Online (Sandbox Code Playgroud)
对于sgml-mode衍生模式,包括html-mode:
(defvaralias 'sgml-basic-offset 'tab-width)
Run Code Online (Sandbox Code Playgroud)