简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!
优质专栏:Audio工程师进阶系列【原创干货持续更新中……】
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
本篇目的:Emacs之default-tab-width和tab-width用法区别与总结。
default-tab-width
和 tab-width
是两个相关的变量,它们控制着制表符(Tab)的显示和缩进行为。default-tab-width
: 这个变量用于指定默认的制表符宽度。它控制着当你使用制表符进行缩进时,每个制表符所占据的字符宽度。默认情况下,default-tab-width
的值是 8。但是,很多时候,你可能希望将制表符宽度设置为其他值,比如 4 或 2。你可以通过设置 default-tab-width
来实现这个效果。
(setq-default default-tab-width 4)
这将把 default-tab-width
的值设置为 4,即每个制表符占据 4 个字符宽度。
tab-width
: 这个变量用于控制代码缩进时使用空格的数量。它影响缓冲区的显示和编辑行为。当 indent-tabs-mode
(是否使用制表符进行缩进)设置为 nil
时,Emacs 将使用多个空格来模拟缩进,其中空格的数量由 tab-width
指定。默认情况下,tab-width
的值是 8。
(setq-default tab-width 4)
这将把 tab-width
的值设置为 4,即每个缩进级别使用 4 个空格。
总结来说,default-tab-width
控制指定缓冲区中显示制表符的宽度,而 tab-width
控制使用空格进行代码缩进时的空格数量。
虽然它们的名字相似,但它们的用途和影响范围是不同的
default-tab-width
和 tab-width
两个变量都可以用于设置制表符的宽度,但它们具有不同的作用范围和优先级。default-tab-width
:
default-tab-width
来确定缩进的宽度。;; 设置全局的默认制表符宽度为 4
(setq default-tab-width 4)
tab-width
:
tab-width
,则会覆盖全局的 default-tab-width
设置。;; 设置当前缓冲区的制表符宽度为 2
(setq-local tab-width 2)
如果你想设置全局的默认制表符宽度,可以使用 default-tab-width
变量。而如果你想为某个特定缓冲区或文件类型单独设置制表符宽度,可以使用 tab-width
变量。
(setq default-tab-width 4)
(setq-local tab-width 2)
(add-hook 'c++-mode-hook (lambda () (setq-local tab-width 8)))
(add-hook 'python-mode-hook (lambda () (setq-local tab-width 4)))
(setq default-tab-width 2)
(add-hook 'markdown-mode-hook (lambda () (setq-local tab-width 4)))
setq-default
设置默认制表符宽度为 4,即使在没有缓冲区时也会生效(setq-default default-tab-width 4)
(add-hook 'org-mode-hook (lambda () (setq-local tab-width 2)))