doom-modeline - 源自doom emacs 的 mode-line

这个有效,另外一个不行

(doom-modeline-def-modeline 'main
                            '(window-number bar matches " " buffer-info buffer-position  " " selection-info)
                            '(global buffer-encoding major-mode process vcs flycheck))

你用了evil-mode吗? 麻烦再试试这两个,并打开M-x toggle-debug-on-error。谢谢。

(doom-modeline-def-modeline 'main
                            '(workspace-number window-number bar matches " " buffer-info buffer-position  " " selection-info)
                            '(global buffer-encoding major-mode process vcs flycheck))
(doom-modeline-def-modeline 'main
                            '(window-number bar evil-state matches " " buffer-info buffer-position  " " selection-info)
                            '(global buffer-encoding major-mode process vcs flycheck))

不谢,都不行,出错信息如下:

Debug on Error enabled globally
Error during redisplay: (eval (doom-modeline-format--main)) signaled (invalid-regexp "Trailing backslash") [15 times]

看起来workspace-numberevil-state两个section有报错。 你安装启用了哪些模式?有没有evil-mode, eyebrowse-mode?

都没有,只是一个简单的测试 我把测试文件放上去你看下emacs.d

Sorry, 最近我一直在macOS上工作,没有找到root cause。你直接使用那个配置应该满足你的需求。后面有时间我再看看。

不过有一个疑问,你贴出的配置是起作用还是有问题的?

是可以正常使用的配置

你这个配置跟上面你说有效的配置不一样啊?

这是我的错,描述不清楚,当时想的是贴出不起作用的那个,结果…就被误会了

这个是起作用的:

(doom-modeline-def-modeline 'main
                            '(workspace-number window-number bar evil-state " " buffer-position  " " selection-info)
                            '(buffer-encoding major-mode vcs flycheck))

OK,明白了。我使用你的配置在Windows和macOS上都不能重现该问题。

再请试试这两个。告诉我哪个编号成功即可。

#1

(doom-modeline-def-modeline 'main
                            '(workspace-number window-number bar evil-state matches " " buffer-info buffer-position  " " selection-info)
                            '(global buffer-encoding major-mode process vcs flycheck))

#2

(doom-modeline-def-modeline 'main
                            '(workspace-number window-number bar evil-state matches " " buffer-info-simple buffer-position  " " selection-info)
                            '(global buffer-encoding major-mode process vcs flycheck))

#1成功,而且mode-line比前一个有效的显示内容多一些,见图红框标记部分

我怎么觉得你用的是#2呢?anyway,你用这个配置吧,应该足够了。:smile:

啊,惭愧。真的是2#

最近更新后产生如下错误

(eval (doom-modeline-format--main)) signaled (wrong-type-argument stringp nil)

是更新到的最新版本吗?具体环境是什么,包括安装包? 这个错误没有什么有用信息,最直接的办法是逐个删除 main 里面的 segment,看看是由哪个引起的错误。

(doom-modeline-def-modeline 'main
                            '(workspace-number window-number bar evil-state matches " " buffer-info buffer-position " " selection-info)
                            '(global buffer-encoding major-mode process vcs flycheck))

我用的是spacemacs,确实是刚更新的版本,挨个试了一下,发现是 buffer-info产生的问题

试试(setq doom-modeline-buffer-file-name-style 'file-name) 或者 `(setq doom-modeline-buffer-file-name-style 'relative-to-project)

用这两种样式都没有发现问题。

如果直接用默认样式的话,启动时似乎并没有问题,但是一旦打开一个文件,就会出现这种错误。

我怀疑和文件路径有关,你能贴出完整路径吗?

是说被打开文件的路径吗?随便哪个文件都有问题。试了试truncate-upto-root和truncate-all这两种样式,虽然可以显示文件路径,但是着色有问题,有以下错误

Invalid face reference: doom-modeline-project-root-dir

Invalid face attribute :inherit doom-modeline-project-root-dir