Spacemacs 的缩进设置


#1

真受不了两格缩进,想要改成四格的【看他人代码的时候很奔溃】 以及在用 cpp 时自动缩进非常古怪=_= 我去查了一下修改方法,貌似很麻烦? 大家有什么修改成功的经历,可以借我参考一下吗?


#2

所有buffer默认使用4格缩进:

(setq-default
 tab-width 4
 )

electric-indent-mode在某些mode下表现不是很好。在c++-mode下关闭它:

(add-hook 'c++-mode-hook (lambda ()
                          (electric-indent-local-mode -1)))

emacs(spacemacs)的开箱即用属性是很差的,真要用先把山人的视频看一下吧,上面这些基础问题都会讲到。


#3

主要靠 c-set-style 控制的,要求不高的话,不麻烦. 例如: (add-hook 'java-mode-hook (lambda () (c-set-style “java”)))


#4

全局

把你最常用最舒适的设置写在 ~/.emacs.d,作为全局默认的配置:

(setq-default indent-tabs-mode nil)
(setq default-tab-width 4)

最好 tab-stop-list 也设置一下。

每种模式都有自己的缩进方式,c/c++/php 是这样:

(setq c-default-style "k&r")
(setq c-basic-offset 4)

web-mode 这里有提到:/t/spc-j/438/7

项目

如果你参与的某个项目编码风格特别不一样,可以创建一个 /path/to/you-project/.dir-locals.el 文件,特别定制,具体请参考手册或 google。

文件

还可以只设置特定文件

文件头:

// -*- 写在这里 -*-

或者文件尾:

// Local Variables:
// 写在这里
// End:

请参考 https://www.gnu.org/software/emacs/manual/html_node/emacs/Specifying-File-Variables.html


#5

子龙山人那个视频是给予mac的,win会不会看起来比较不一样?


#6

win下面用起来是一样的,毕竟是同一个软件,不同是win下面有些会比较卡(主要是magit),有些会莫名卡死,我碰到过的卡死的情况主要有flycheck with javascript eslint,和helm-ag / counsel-ag


#7

项目的话,可以看看 editorconfig,配置挺方便的,而且这个是跨编辑器的,绝大多数编辑器配好插件就能用,emacs对应的是editorconfig