不谈Spacemacs,只谈Centaur Emacs

说的是。可能我天真的认为玩 Emacs 的都是偏技术型的,做事都比较细心谨慎。读读文档算是最基础的吧,否则怎么做技术开发呢?如果一时疏忽没看到也无可厚非,但实际情况却基本是根本没有看,或者认真看。。。别问我怎么知道的,有一堆私信。。。。

1 个赞

这个话题由我引起,我从使用者的角度,来发表一下看法。

对于不看Readme文件的人,确实没有办法。心情好的时候,善意提醒一下吧

看Readme文件的人分几种。

最好的那种就是仔细从头到尾看一遍。对于中小篇的Readme还行,对于长篇的,先简略看一下标题和前面的概要,用一段时间有概念了再从Readme里找有没有和自己相关的问题。

我的习惯一般是看标题和紧接标题下的说明来了解有哪些功能。这种习惯不好的一点就是容易看漏。costume.el和custom-post.el应该是两个副标题。而实际上对custom-post.el的说明不仅没写在某个标题之后,而且写在 Manual大标题的最好一句,这个位置一般是对功能的追加说明,而不是介绍一个新功能

只是提一下自己对Readme格式的看法

Centaur Emacs 用起来,太赞了。:+1::+1::+1:

term 里显示不了汉字,改什么地方? 41

问号部分其实是一个汉字名文件夹

这个应该是 shell 本身的设置。系统的终端里显示正常吗?查查locale,我的是

LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL=

终端是正常的,我在东京,用的是日文 49

日文系统我没用过哈,应该原理是一样的。在 emacs term 里看看locale。用set-terminal-coding-system尝试修改成别的。根据中文系统的经验,我建议locale直接使用en_US.UTF-8。这里是 emacs 编码设置的一个参考:https://blog.csdn.net/yo746862873/article/details/52291780

1 个赞

好的,谢谢!

其实我感觉问题在这儿:

开发者(心声):我的文档写得很详细,用户应该能根据我的文档找到解决方案了。而且我的文档里也谢了我踩过的坑,用户看了就会避免。

某用户:怎么弄好?

开发者:看文档啊。有详细的说明的。

某用户:所以我问你现在没办法工作了,然后怎么弄好?

开发者:所以我让你看文档啊,那上面已经写明白了。

某用户:我要是看得懂我还问你?(PS:其实根本没看,也懒得看)

开发者:……

我有时候也特别不明白,不管工作上还是日常里,有些人总是强烈地希望具体的“人”来指导他,脑怕这个“人”只是把自己文档里的话复制粘贴到对话窗口里都行,但是这些人就是不会自己看文档/书或者自己搜索答案。

说实话我也有点,尤其是犯强迫症的时候,就会来论坛里寻求大家的意见……


另外我觉得一个比较好的方法是提前确定你要做什么。如果你只是想把自己的配置分享出去让大家来用,那么就没必要背上那么重的责任。毕竟那是你的东西,别人用不习惯是别人的事情不是?

但是要做通用配置,那就得考虑很多事情……比如目标用户群,你的配置要实现的特性之类的,否则要么被issues烦死,要么就会慢慢变成收拾不了的庞然大物……

1 个赞

我喜欢centaur emacs,很好用。也犯过没认真看readme的错。发私信,seagle0128兄都很有耐心地做了回答。

seagle0128兄人很好的……

怎么有了解决方案?

我想从spacemacs迁移配置已经想了好长时间,比较中意的有三个,之前试用过默认配置,元旦时候集中下手把自己的配置合并进去,也梳理了一下之前的东西。

  • purcell的那一套,说实话我认为超出我的能力范围了,有些东西甚至我还不知道搜索需要的关键字是什么,也找不到解决方案,短期内肯定大大影响效率;
  • doom有很多优点,但是也有很多bug,尤其是不用evil的话,简直了;
  • centaur很便利,比如youdao-dict这种包,他们的配置里是不会有的,但是可能我用的时间短,没有打磨好或者没有找到正确的姿势。

没能解决的问题,

  1. 比如doom的map!函数,虽然也有坑,不过很简便。而我在centaur下试了global-set-keybind-key*都不行,现在还不能重新绑定快捷键到自己的函数;
  2. 没找到便捷地设置主题的方法,用set-face-attribute自定义的变量也都不生效;
  3. 另外像(display-line-numbers-mode nil)这样的设置也不生效;
  4. 隔壁老王的company-english-helper,沿用以前的配置会报错,说找不到company,很奇怪。他的awesome-tab也用不了;
  5. 每当退出时,总有 async 进程在运行,我还不知道如何禁用它的询问,直接退出;
  6. 中英文分别设置字号达到org-mode表格对齐的效果,我也是抄的隔壁配置,同样不生效:
(set-face-attribute 'default nil :font (format "%s:pixelsize=%d" "Source Code Pro" 14))
    (dolist (charset '(kana han symbol cjk-misc bopomofo))
        (set-fontset-font (frame-parameter nil 'font)
                           charset
                          (font-spec :family "Source Han Sans CN" :size 16)))

最后建议能把个人配置的文件单列出来,我是

(setq custom-file (expand-file-name "~/.centaur/init.el"))

到另一路径然后用git管理的,不知道这个思路对不对?感觉实际花费要比centaur提示的加载时间更长。

希望 @seagle0128 兄有空的话,可以指点一下思路。谢谢!

1 个赞

以前我也遇到过,不过如果我README里面写得很清楚,就提醒他看文档, 然后就没有然后了,如果他自己解决不了,可能他不太适合使用 emacs, 不久就会放弃,也就没有然后了。

我也是另建一个路径进行扩展管理,只是在centaur建两个link文件,custom.el和custom-post.el,指向我的扩展路径下同名的文件。剩下就是写自己的东西了

我一直认为通用配置是一条死路。。。。

试过generel.el吗?

不太明白,load-them没有作用吗?set-face-attribute改完face之后用list-face-display看看改了没?具体不管用的代码是什么样的?

我在mac下的配置:

(dolist (charset '(kana han cjk-misc))
   (set-fontset-font (frame-parameter nil 'font)
                     charset (font-spec :family "Source Han Serif SC"
                                        :size 13 ; 16
                                        ;; :weight 'semi-bold
                                        )))
 (add-to-list 'face-font-rescale-alist '("Source Han Serif SC" . 1.3))

我把中英字体的字号设置到一样,用face-font-rescale-alist调整中文字体对齐。

是这样……通用配置为了满足所有人,要做大量的封装(代码变成选项),很麻烦。

说句可能有点找抽的话,我觉得做面对“真·大众”的产品的时候,我们一定要把用户想象成那种“没有什么知识和耐心,还爱随便乱折腾”的生物。就跟有位仁兄在知乎上谈到机械设计时的观点差不多。

我觉得很对,毕竟 Emacs 这个平台本身就不是为此而生的。

但是有时候自己的需求就很大而且变化极快……结果导致本来想做”小而美”的东西,最后又做成了一个怪物。

1 个赞

purcell的那套东西基本上是为他自己设计的,所以他不太会为我们的需求改变什么。比如我个人就觉得他讨厌不完美的辅助工具。所以很多语言的自动补全(甚至他自己会用到的语言,比如JS)他都没加上。而且很多“现代工具”他也没有采用。

不过我感觉他的配置最适合拿来当基础框架然后自己改,因为该有的toolchain都有,又没太多私有框架。

另外关于3……关闭mode最好使用-1而不是nil0……虽然我也不知道为啥。但是用nil0有时候总是没用。