(custom-set-variables
'(lua-indent-level 4))
我用customize-variable设置的,但是不管用。
(custom-set-variables
'(lua-indent-level 4))
我用customize-variable设置的,但是不管用。
我直接开启 lua-mode 后,运行 (setq lua-indent-level 2)
是可以成功修改缩进的。我使用的是 spacemacs, 直接放到 user-config
里面也是可以的。
这样的话,每次打开一个lua文件,开启lua-mode,再手动设置 lua-indent-level ,感觉好麻烦,有没有什么方法可以打开lua文件就是你想要的缩进方式,比如说4个空格。
把设置 lua-indent-level
的语句放到 with-eval-after-load lua-mode
块里面就可以了
(with-eval-after-load 'lua-mode
(setq lua-indent-level 2))
谢谢山人,用你这个方法已经解决了:grin:
(with-eval-after-load 'lua-mode
(setq lua-indent-level 2))
这么做是对的,似乎更符合逻辑。但也可以不用 with-eval-after-load
,因为 setq
并不需要变量已经定义,甚至在 setq
之后再定义这个变量,setq
赋的值还在。
(progn
(setq bar 111)
(defcustom bar 222 "")
bar)
⇒ 111
我用的方法,比较繁琐。
建了一个lua-config 的layer
好处是,比较清晰吧,不会出现臃肿的user-config
https://github.com/young40/dot/blob/master/spacemacs-private/lua-config/packages.el
我也想自己配置一个layer,不想什么东西都挤在config里面,看到你们配置的layer不知道什么意思 ^…^
似乎问题的原因还没找出来,问题就被宣布解决了,这样的话,讨论对除了 OP 以外的人来说没什么意义。
custom-set-variables
和 setq
都是有效的(甚至前者更「正确」),用不用 eval-after-load
也都一样。
我也想用custom-set-variables
设置,就是设置了不管用。
我其实只是简单的 setq 就解决了的,custom-set-variable 也是可以的。 但是不知道你为什么要用 with-eval-after-load
才可以。。。
建议你还是使用 custom-set-variable
然后打开一个 lua 文件,此时再用 c-h v
看看 lua-indent-level
这个变量的值是否是你修改过的值。
(setq lua-config-packages
'(lua-mode))
(defun lua-config/post-init-lua-mode()
(use-package lua-mode
:defer t
:config
(progn
(setq lua-indent-level 4))
))
精简一下,这样就能明白了吧?
按照山人的方式,解决了,果然有妙计