不谈Spacemacs,只谈Centaur Emacs

好久没用go,今天发现centaur-emacs无法补全了。最近lsp-mode更新很频繁,centaur-emacs又做了调整了吗?

这个乱码是没装什么字体吗?

Win10 / emacs 26.1 / Centaur Emacs

Windows上很多字体有问题。你试试source code pro。

可以用的 现在lsp-mode推荐bingo。

需要修改配置吗?

%E6%8D%95%E8%8E%B7 安装了 source code pro 只解决了一个字符显示,还有不能显示的字符,估计还是字体问题吧。:frowning:

取最新的bingo,已经可以用了,不过发现一个小bug,我已经提issue了

试用过libvterm没?我使用了一下,以前term和zsh以及fish的兼容问题都没有了,与vim内嵌term效果一样。

在emacs中的效果 11

主要是还不成熟,安装也很麻烦,还没有集成。

This is a alpha-release , so it will crash your emacs. If it does, please report a bug!

我在Mac和Linux下都试过了,至少在zsh和fish的兼容性上,比ansi-term和multi-term强多了。

另外,我在你的.dotfiles里提了一个issue

已经fix。libvterm 进了 melpa 我会考虑集成,目前可以本地使用。

请问楼主,“HACK: DO NOT copy package-selected-packages to init/custom file forcibly.”这样做是出于什么目的?我记得spacemacs有这样一个机制:就是init中设置安装的插件与elpa文件夹中的插件始终保持一致。不知centaur是否有这样一个效果?

use-package可以控制安装哪些包,package-selected-packages就没有必要了,而且可能导致与配置不一致。

哦,谢谢回复!我正在学习您的配置。init控制安装哪些包容易实现,但似乎spacemacs实现了自动删除elpa文件夹中、init中未设置(或注释掉)安装的包,也就是实现了“init中设置安装的包与elpa文件夹中的包始终保持一致”;其他许多有名的配置,也未实现这点。本人水平有限,无法将spacemacs实现这点的代码提取出来用于自己的配置。

看看package-autoremove

3q! xiexie!

但是package-autoremove会把所有的包都删掉,因为package-selected-packages是空的。我觉得Emacs的包管理机制有点奇怪,明明在package list里面都已经有installed和dependency这样的状态信息,为什么autoremove不根据这个去删除孤儿依赖,而偏偏要用package-selected-packages呢……

楼主的配置很棒!作为入坑一个多月的小白,在折腾了很多配置之后终于感觉可以安顿下来。个人觉得Centaur比Spacemacs好用得多,里面很多的细节实在是太贴心了。

现在遇到两个小问题。我平常码字喜欢用olivetti-mode居中文本。这个配置里用能用快捷键打开olivetti-mode非常方便,但是字体缩放到2倍对我而言有些太大了。我看了一下init-utils.el,是通过给olivetti-mode-hook加了一个匿名函数来调整缩放比例,但因为是匿名函数所以没法remove掉。我不知道有没有好的办法在custom.el或是custom-post.el去掉这个缩放功能,现在只能去掉init-utils.el里面与hook相关的那几行暂时解决这个问题。我想会不会把缩放比例设置成一个变量会好一些,这样用户可以根据自己的情况做调整。

另一个问题也和olivetti有关。在当前的buffer开启olivetti-mode的时候,打开另一个buffer会导致新buffer的字体也跟着放大。这个问题并不是所有情况下都会出现,我暂时还没找到规律,但是多试几次一定会出现(我使用的版本是Emacs 26.1)。我不太懂elisp,猜是和那个匿名函数有些关系,希望楼主可以解答一下。

非常感谢!

匿名函数也可以remove。把那个函数抄一边就行了

或者说(lambda (...) ...)是名字就是(lambda (...) ...)

可能我之前没有解释清楚,init-utils.el中的匿名函数是使用use-package加入hook变量的。我试了一下这个方法,发现对直接使用add-hook添加的lambda是可以remove掉的,但是use-package中添加的的却不行,它把lambda变成了closure。olivetti-mode-hook的值是:

((closure
  (t)
  nil
  (if olivetti-mode
      (text-scale-set 2)
    (text-scale-set 0))))

我还找到一个办法是直接(setq olivetti-mode-hook nil),这样就能解决问题了。谢谢回复!自己今后还是要花点时间把elisp学懂才行……