就是从github拉取配置之后,打开emacs 就看到底下有编译的信息 1done 2skipped 之类的,然后打开之后就是这样有一个窗口显示字节编译的警告
然后rencentfiles里出现一堆elpa下的文件这个需要怎么解决。之前拉下来装完这里都是空的。不太懂请教各位
就是从github拉取配置之后,打开emacs 就看到底下有编译的信息 1done 2skipped 之类的,然后打开之后就是这样有一个窗口显示字节编译的警告
然后rencentfiles里出现一堆elpa下的文件这个需要怎么解决。之前拉下来装完这里都是空的。不太懂请教各位
编译产生的警告应该解决掉,比如 icons-in-terminal
有可能就是个 Bug,它的确没定义。
第二个 Recentf 的问题跟主题不相干,应该用一个单独主图。估计是 Recentf 的锅,它不能区分用户自己打开和程序打开的文件,一个 workaround 是设置 recentf-exclude
把这些文件排除掉。
这么多错误都要解决掉吗。。
是,能有这么多警告也不常见。
好吧 可是我看编译警告很多我都没设置在配置里啊。
看情况处理
https://framagit.org/citreu/emacs.d/blob/master/etc/.dir-locals.el
这里我关闭了free-vars
(引用自由变量)unresolved
(使用运行时可能未定义的函数)obsolete
(使用deprecated功能)的报警,然后关闭了flycheck的两个elisp checker。
别人写的package的byte-compiler warning,管不了,也没必要管,一般先用了再说,有问题就报bug
自己写的package有compiler warning,出于责任心,还是要处理一下的,而且byte-compiler不过的话不能过melpa的初审。
包里出warning大部分时候都是因为你写的代码有问题,当然也有可能存在false positive的情况,列举几个常见的
_
前缀标记不使用的变量(defun ignore (&rest _))
declare-function
和 defvar
来消除报警(declare-function some-function "ext:A")
(defvar some-variable) ; Don't give it an initial value!
(require 'cl)
, cl package 已被废弃,目前cl package内只有对应的到cl-lib
package 的alias,使用下面的等价代码替换。当然最好直接使用cl-lib
(eval-when-compile (require 'cl))
(require 'cl-lib)