如何在Spacemacs中禁用rainbow-delimiters?排除包后仍未生效
解决Spacemacs中排除rainbow-delimiters后仍生效的问题
我来帮你搞定这个Spacemacs的小麻烦:你明明在.spacemacs里加了dotspacemacs-excluded-packages '(rainbow-delimiters),重启后分隔符却还是会跟着光标变色,这确实有点恼人。
问题出在dotspacemacs-excluded-packages的作用上——它只是阻止这个包被安装,但如果某个你正在用的Spacemacs层已经默认启用了这个包,排除列表并不会直接禁用它的功能。下面是几个靠谱的解决办法:
1. 先搞清楚哪个层在加载rainbow-delimiters
先打开Spacemacs,执行这个命令:M-x package-used-by-package
输入rainbow-delimiters后,它会列出所有依赖这个包的层或插件。比如很多和Lisp相关的层(像lisp、clojure)默认都会自动启用它。
2. 给对应层加配置,关掉rainbow-delimiters
找到那个自动加载它的层后,你可以在.spacemacs的dotspacemacs-configuration-layers里给该层添加禁用配置。举个例子,如果是lisp层在搞事情,你可以这么写:
dotspacemacs-configuration-layers '( (lisp :variables lisp-enable-rainbow-delimiters nil) ;; 这里放你其他的配置层... )
不同层对应的禁用变量可能不一样,你可以按SPC h d l输入层名,查看对应层的文档来确认具体变量。
3. 直接强制移除它的启动钩子
如果上面的方法没效果,那就来个“硬办法”——在.spacemacs的dotspacemacs/user-config部分添加这段代码,直接把它从自动启动的钩子中移除:
(remove-hook 'prog-mode-hook #'rainbow-delimiters-mode) ;; 如果只是特定模式有问题,比如emacs-lisp-mode,也可以单独移除 (remove-hook 'emacs-lisp-mode-hook #'rainbow-delimiters-mode)
做完上面的修改后,记得重启Spacemacs或者用SPC f e R重新加载配置,应该就能看到分隔符不再变色啦。
内容的提问来源于stack exchange,提问作者Dimitar Nonov
相关产品推荐
相关产品推荐

