How to make Emacs use tabs instead of spaces?

你说的曾经没有我的故事 提交于 2019-12-23 09:35:30

问题


I've binded a indent-for-tab-command command to one the keys and I want it to make smart mode-specific indentation just like it already does but with tabs. In all the modes. It always inserts spaces instead of tabs. How to reconfigure/reprogram it?

I want to use Emacs as fully customizable editor as it's announced to be. So that it would behave exactly as I want. I do not care about developers' opinions at all and want to customize everything. Is this wrong?


回答1:


Not all major modes handle indentation the same way, and so you may have to make some adjustments to certain modes to get the behaviour that you want. Often they will have their own indentation settings, e.g. cperl-indent-level.

In cc-mode based modes for C-like languages, something like this should do what you want:

(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)

Note that there are some interesting situations that can come up when using tabs for indentation. The EmacsWiki indentation basics page is worth reading, if only to understand how Emacs treats indentation differently from other editors.

Edit:

For ruby-mode, this should work (assuming you've already set tab-width as above):

(setq ruby-indent-tabs-mode t)
(defvaralias 'ruby-indent-level 'tab-width)

For sgml-mode-derived modes, including html-mode:

(defvaralias 'sgml-basic-offset 'tab-width)


来源:https://stackoverflow.com/questions/21788204/how-to-make-emacs-use-tabs-instead-of-spaces

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!