[web-mode的锅,错怪spacemacs了 ]git提交后莫名发现没改的代码被indent了,原因未知

单打独斗的时代过去了,现在每次commit之后都有peer review。众所周知emacs里会indent成(javascript):

object.foo()
      .bar()

而我拿到手时是

object.foo()
  .bar()

commit之后不放心diff一下,突然好几处没动过的类似上面的地方就被悄悄indent了。还有会自动在end of file加个new line,这个倒没关系,毕竟才一行diff。

before-save-hook after-save-hook都看了,没有什么异样。但是感觉多半是spacemacs又双叒叕敠调皮了。

可是自己从头搞又好难,lunary centaur doom spacemacs,我只想抄一棵树,你们却给了我一个亚马逊。

还有 find-file-hook, foo-mode-hook 之类的。

习惯上文本文件最后一个字符都应该是换行符(当然空白文件除外)。

magit-mode-hook看了,magit很多其他hook,有点看不过来。web-mode-hook看来也没问题。find-file-hook被spacemacs加了二三十个(Original value was nil),看不过来。

centaur应该是最简单的

我是以centaur为基础进行裁剪,自己加个evil,which-key,抄了一些spacemacs和doom的代码,基本能覆盖之前用spacemacs的功能。好处是在哪出错了心里大概有数了。

before-save-hook 可能是一个 buffer-local variable。需要在当前buffer里看的。。。

哈哈,我也是

image

我的直接是这样,一般indent(offset)或者format-on-save什么的,都是可以自定义的吧,我都是加在layer的时候的,然后还有一点就是google-c-sytle用的hook是c-mode-common-hook,不太好,对其他language都生效,有可能是它的锅。

有一点进展了,在这个.bar()上面几行的地方yank,会导致.bar()被indent。(evil的p不会这样)
我把spacemacs加在yank上的一个advice advice-remove掉了,还尝试关了evil,没能解决。

删号重练吧,亚马逊欢迎你

直接配置下elisp的auto formatting?改成想要的呗

不是formatting的问题,是我粘贴了一段代码,然后下面几行我根本没碰的代码自己就对齐了一下,你说气不气人

你paste屌用的函数是yank?如果实在不行,就直接bind*成evil-paste-after得了。

insert-mode下用的是yank。evil的C-r "要按两个键,不好用。

你这方案不接受,怎么能向黑恶势力低头呢。

我不用 Spacemacs,建议先用 emacs -Q 确认是否是 Spacemacs 的问题,进一步缩小问题的范围。

会不会是这个 web-mode-enable-auto-indentation

竟然没想到检查post-command-hook。一看上次说到这个也是你 :joy: