我自己对一些minor mode习惯用hydra进行开关,并通过%`minor-mode
来判断当前 minor mode 是开是关。
在Emacs刚开启的情况下这些 minor mode 我通常是关闭的,以hl-line-mode
为例,最开始我考虑用symbol-value
判断这个 minor mode 有没有开启,但是这个函数在 symbol value 为空时会报错。
所以我又用 %(if hl-line-mode t nil)
来判断,但是这样会出现一个问题就是打开相关的 hydra 的时候会出现Symbol’s value as variable is void: hl-line-mode
,对这种情况我的解决办法是提前定义和这个 minor-mode 通用的变量(defvar hl-line-mode nil)
这样的问题就是我默认这个 mode 在开启状态下是关闭的,不知道大家有没有什么办法能使 symbol 的 value 为空时,使其显示的值为nil
?
难道要考虑用%(if (ignore-errors (symbol-value 'yas-minor-mode)) t nil)
的方法来判断吗?
不知道大家有没有什么更好的处理方法?