如何查看是谁更改了变量?

purcell的配置里面……default-input-method被设为"rfc1345"

那么我怎么查,到底是哪个包更改了这个变量 ?

ag 一下?

·ag· 整个 .emacs.d 目录嘛。简单一点,暴力一点。

然而应该是一个package做的……因为配置里完全没有

估计是 Emacs 根据语言环境变量自动设置的。不用纠结,直接覆盖。

好吧……我对了下他的河我自己写的配置……发现还真就是locale不一样……我没用那么多的强制UTF-8……

:+1:

你对了……还真是各种强制UTF-8的问题……Emacs会自动把UTF-8编码的默认输入法设置为rfc1345……

Emacs 26 里有针对变量的 watchpoint 机制——每当变量被修改时,可以运行一个函数或者启动 Debugger,或许就能知道修改某个变量的代码(?)


相关的 Commit:

如果在用 Emacs 26 的话,查看 (info "(elisp) Watching Variables")

1 个赞

default-input-method是通过lisp/init-locales.el中的(set-language-environment 'utf-8)来设为"rfc1345"的吧

helpful 这个包好像可以静态分析出变量都是在哪里被引用赋值