刚刚维护了一个月的配置,又要重写了。

哎,自从我六月份上了电报,看到别人攒起来的配置,馋死人了。于是我便有了自己构建 Emacs 配置的念头了 (之前我一直使用陈斌大佬和 purcell 大师的配置),结果越攒越不对劲,最后用 flycheck 一查,放眼望去,配置全是红色的波浪线。然后我就打算重写了,因为我觉得还是重写更快。。

自己攒配置感觉好累,我尝试了几次都放弃了。主要是 Elisp 水平还不行。

目前还是在 purcell 配置上扩展需要的功能,同时保持和上游同步,并滚动更新 :smile:。有问题,就给 purcell 报bug,他更新也是很快很及时。

1 个赞

我的配置写的比较朴实的。内容大概不合适,但是写法可以参考下。

顺便配个视频

3 个赞

哈哈,你的这个方式值得我参考,谢谢。

好的,我改天用用你的配置,也参考参考,谢谢。你的视频我之前看过 :grinning: 我最近打算再整理一下配置思路,正好可以重温一下。

才发现我写elisp都没开flycheck,我检查elisp配置写对没有的办法还在是另开一个emacs实例看能不能正常启动。

然后我也开了flycheck发现我的也是各种波浪线… :joy: 然而emacs启动也没报什么就继续用 :joy:

1 个赞

之前也想自己攒配置,但是几经放弃与重来,最后还是选择了doom。感觉很多配置 doom 都已经帮我配置好了,也没有必要自己进行重复劳动。并且如果 Doom 有问题,也可以自己尝试修复或者到github上面报bug,用久了感觉也就习惯了。

不过在Emacs里面使用evil有一种非常奇特的感觉,又可以使用vim的键位,又可以部分使用 Emacs 的键位。而其它的编辑器要么就是Vim模拟器,要么就是Emacs模拟器,全都没有办法复刻这样的体验了。。。

1 个赞

如果不用vim快捷键,可以试试 Centaur Emacs

1 个赞

哈哈,我也是这样的:虽然 flycheck 全是波浪线,但是 Emacs 还是可以正常启动。

不用在乎 flycheck 的,你打开很多知名的 package,一样很多波浪线。

1 个赞

我的想法也是这样,可禁不住大家都有自己的配置。至于 Evil ,我个人还是喜欢 Emacs 自己的键位。

好的,我尝试一下。不适用 Evil 确实符合我的习惯。

嗯,但是我算是比较强迫症,看到波浪线就不舒服,那就暂时将就一下吧。(我用 purcell 配置时,用 flycheck 阅读配置发现一条波浪线都没有,这就是大师吗。。)

:smile:,Purcell 是 flycheck 的重度用户,他是不会允许有波浪线的。你要是不能忍受波浪线的话,可以把光标放到波浪线上,然后根据提示修复,使得你的配置更加符合 Elisp 语法规则。
比如我加了一个 在 dired 下自动标记空文件夹的函数,就会提示很多波浪线,原因是定义的时候,dired还没启用,所以用到的几个 dired 的函数都是未定义的。但 dired 下面用这个自定义函数的时候是没问题的,因为那时肯定已经加载了dired 的这些函数。

(defun dired-mark-empty-directories (&optional arg)
  "Mark empty directories.
A prefix argument ARG means to unmark them instead."
  (interactive "P")
  (let ((dired-marker-char (if arg ?\s dired-marker-char)))
    (dired-mark-if
     (when-let ((dir (dired-get-filename t t)))
       (directory-empty-p dir))
     "empty directory")))

如果在函数定义之前加一个

(require 'dired)

这样波浪线就会消失了。
但是我又不想 Emacs 一开始启动就给我全部加载 dired,那样会增加启动时间,所有干脆就不管这些波浪线了。

PS: 上面的这个函数是抄这个Blog 的 http://www.nextpoint.se/?p=808

1 个赞

哦,看来这个 flycheck 有时候还是不够通人性,这种情况就不是 flycheck 考虑的到的。那么 flycheck 有标记错误的地方不一定就一定要修改,还是取决于具体配置的目的。

至于这个,说到底还是我的 Elisp 水平不够 :sob:,我按照这个修复怕是要花费太多时间。(所以我还是重写吧,使用加载了 flycheck 的 Emacs )

哇,这个 blog 我之前都没见过。这是哪位大佬的?

Centaur Emacs 尽量消除了波浪线。有些确实不用在意,flycheck的告警也是分级别的,红色的一定要解决,其他的就要看情况。但是,默认的配置算是比较好的方案,所以建议尽量修复,有些确实是隐藏的潜在问题。

2 个赞

话说这个情况能不能用 with-eval-after-load 或者用 autoload 注释解决呢?

这个我都尝试过,不行的。按理说 with-eval-after-load 应该是比较合适的,加载 dired 的时候再定义这个函数。但 flycheck 还是警告。

哈哈,我也是这种方式