我一直在尝试解决Emacs中的sh-mode
缩进问题(我在then
后得到一个双缩进)并发现我可以手动设置缩进然后运行{{1} }自动配置缩进。
但是,此配置仅适用于我当前的会话,我似乎无法找到因自动配置而被修改的任何变量。 (虽然它有效:缩进始终是我想要的。)当它运行时,它会说"本地规则设置"但是没有告诉我已经设置了哪些本地规则。
当然,当我重新启动Emacs时,本地配置会丢失,我必须再次运行auto-config命令。
我在本网站上发现了一些关于列出变量及其值的问题,但我无法找到如何列出仅针对当前会话进行了更改的问题。我甚至使用this post在运行C-c >
命令之前和之后转储变量并比较输出;没有什么明显的不同。
所以我想我的问题是双重的:
C-c >
文件?答案 0 :(得分:1)
我认为结果取决于您的Emacs版本,但是对于最新版本,这由SMIE处理,因此个人设置保存在smie-config
变量中。
当前缓冲区中使用的本地设置保存在内部变量(smie-config--buffer-local
)中。您可以将其移至smie-config
并通过致电~/.emacs
将其保存到smie-config-save
。
还有一个细节:smie-config-save
本身并不将设置保存到~/.emacs
。它只将它们从瞬态缓冲区局部变量smie-config--buffer-local
传输到受 Customize 控制的全局smie-config
变量,并且可以保存到{{1}通过~/.emacs
之类的东西。这应该可以在M-x customize-save-customized
中得到改善。我建议smie-config-save
要求改进。
答案 1 :(得分:0)
这是一个不完整的解决方法而不是答案,但它是一个开始!
想法是在加载shell脚本后立即触发sh-learn-buffer-indent。将以下内容添加到Column
文件中:
~/.emacs
一些重要的注意事项:
((add-hook 'sh-set-shell-hook 'sh-learn-buffer-indent)
显然提到了这一点,并且Noam Postavsky通过我提交的bug report引起了我的注意。)