emacs:要使用制表符缩进(制表符大小2或4)并用空格对齐吗
我现在使用emacs有一段时间了,并且在大多数情况下都喜欢它(对ssh有用,语法突出显示,…) 但当涉及到代码的缩进和对齐(对齐)时,我并不清楚emacs 我希望在我的所有代码(SQL、C、Java、ECMAScript、HTML、PHP、CSS等等)中,按下“TAB”键可以真正生成一个制表符(我通常有2个空格,但4或6个也可以)。[我同意,当涉及对齐时,代码中的制表符是有害的,但当涉及缩进时,空格也是有害的!]您可以看看,我希望如何在HTML模板中使用它: 另一方面,我总是与空格对齐,所以其他程序员在我的代码中正确对齐了所有的等号。这很好,但有两个例外:emacs:要使用制表符缩进(制表符大小2或4)并用空格对齐吗,emacs,tabs,indentation,spaces,tab-size,Emacs,Tabs,Indentation,Spaces,Tab Size,我现在使用emacs有一段时间了,并且在大多数情况下都喜欢它(对ssh有用,语法突出显示,…) 但当涉及到代码的缩进和对齐(对齐)时,我并不清楚emacs 我希望在我的所有代码(SQL、C、Java、ECMAScript、HTML、PHP、CSS等等)中,按下“TAB”键可以真正生成一个制表符(我通常有2个空格,但4或6个也可以)。[我同意,当涉及对齐时,代码中的制表符是有害的,但当涉及缩进时,空格也是有害的!]您可以看看,我希望如何在HTML模板中使用它: 另一方面,我总是与空格对齐,所以其
b) 选项卡在所有emacs模式下(c、java、html、php、css、ecmascript等)都有2个字符宽?正如@lawlist所说,每个主要模式都不同。每个标签通常都有自己的
缩进行功能
,并且标签宽度
等设置都是缓冲区本地设置
有一个smart-tabs
package()适合我,但我只在类似C的模式下使用它(这并不是说它不适合其他模式,我只是没有尝试过)
选项卡宽度
应该全局设置为您首选的宽度,并且可以在主模式钩子中更改,以便在某些模式中有所不同
(setq-default tab-width 2)
(defun jpk/c-mode-common-hook ()
(setq tab-width 4))
(add-hook 'c-mode-common-hook #'jpk/c-mode-common-hook)
a) 在emacs配置文件中将indent tabs mode
的值设置为非nil。
(setq默认缩进制表符模式t)
应该可以做到这一点。
b) 同样,将选项卡宽度的值设置为所需的宽度。
(设置默认选项卡宽度2)
在您的情况下。
C-q选项卡
将插入一个选项卡。每个主要模式都可以设置不同的内容,有些模式有自己的变量,需要进行定制以实现预期的结果。因此,专注于只设置一个主要模式,然后继续设置下一个模式,直到满意为止。下面是一个示例链接,可以帮助您入门:另请参见:我的配置文件中已经有两个“setq default”。一些主要的模式覆盖了我的行为。但是谢谢你的链接,谢谢你的回答。我以前看过“智能标签模式”,现在下载了“智能标签模式.el”,并从我的配置文件中加载它。不幸的是,您上面提到的代码(尤其是“使用包”)不起作用。我收到消息:调试器已输入--Lisp错误:(void function use package)
。该怎么做,才能使用“use package”命令?我终于用“smart tabs mode.el”让它工作了。我不使用您的使用包代码,只需加载智能标签模式.el
,然后运行暗示代码:(智能标签暗示'c'c++'java'javascript'cperl'python'ruby'nxml)
。工作@iGeeksuse package
是安装和配置软件包的常用方法,但它不是内置的。我很懒,只是粘贴配置文件,而不是将其转换为内置命令。
(setq-default tab-width 2)
(defun jpk/c-mode-common-hook ()
(setq tab-width 4))
(add-hook 'c-mode-common-hook #'jpk/c-mode-common-hook)