谢谢大佬,Message里面没有任何打印信息。
我用精简配置复现了一下,还是会不显示 mode-lline:
我的配置如下:
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name
"straight/repos/straight.el/bootstrap.el"
(or (bound-and-true-p straight-base-dir)
user-emacs-directory)))
(bootstrap-version 7))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
(use-package dired
:straight nil
:custom
(dired-listing-switches "-Bhl --group-directories-first --almost-all --time-style=iso")
)
;; 使用 `E` 可以用外部命令打开文件
(use-package dirvish
:straight t
:init
(dirvish-override-dired-mode)
)
此外我注意到在 tui 界面里是正常的:
精简配置后也是可以正常显示:
是不是这几行造成的? 注释掉能行不?
;; `dirvish--build-layout`
(when (and (display-graphic-p) (> emacs-major-version 28))
(let ((window-safe-min-height 0) (window-resize-pixelwise t))
(dolist (win util-windows) (fit-window-to-buffer win 2 1))))
1 个赞
好像不是这个问题,即使将它设置成 nil,依然有问题。
很神奇的是,只在一台机子上有这个问题。
猜测是某些 Linux 发行版的语言包擅自「翻译」命令输出导致的。在你的终端看看不同的 LANG 和 LC_ALL 设置下 ls -ls 的输出是不是不同。你看看设置 (setenv "LANG" "en_US.UTF-8") 有用不?
1 个赞
刚刚dirvish更新了。同样的配置,打不开了:
(global-set-key [f2] '(lambda () (interactive) (dirvish-dwim "~/Downloads")))
M-x直接运行 dirvish-dwim,dirvish两个命令,都没反应。
不报错? 安装问题吗 package-recompile 一下或者删了重装看看。
我试了git的很多版本。
af239a04bb4d772ba2b10e64937395456ad9430c
是最后一个可以的版本;再新就打不开了。
紧随其后的 e02395c40bd5439ece54989229760bde1e9ea4c1 版本, dirvish.el 文件改成了
(run-hook-with-args 'dirvish-find-entry-hook key 'dired)
将e02395c4改成能用的, e02395c4也能用dirvishi:
(run-hook-with-args 'dirvish-find-entry-hook key buffer)
但是最新的版本改成这个,还是不能用。
奇怪了。
doomemacs 几天前已经 bump 到了一个很新的 commit, 如果 dired 都用不了应该很快有人提 issue, 所以我判断你的问题大概率不是 dirvish 代码导致的,bisect 也就无从谈起。
引用一下论坛的提问指引:
为提高大家的交流效率, 请反馈问题之前先自我排查, 请仔细阅读FAQ。
排查是否是因为自己配置文件引起的问题:
- 用 emacs -Q -l test.el 启动 Emacs
- test.el 这个文件需要你手动创建, 文件的内容之包括需要测试的插件和配置
- 如果 emacs -Q 启动没有问题,请使用二分注释法排查自己的配置代码
- 需要注意的是, 如果 *.el 文件内容是正确的, 但是Emacs行为总是不对, 请检查是否有老版本的 > *.elc 或 *.eln 文件没有删除?
先重点关照一下4.
好的。我再排查一下。
emacs是官方的30.1版本。
@alexluigit
dirvish.el 文件 dirvish–find-entry 函数
(and (run-hook-with-args-until-success
'dirvish-find-entry-hook entry find-fn)
(cl-return-from dirvish--find-entry))
将上面3行去掉,问题消失;如果加上,就出问题。
我看到这3行是 e02395c4 版本加上的。这以前的版本都没有问题。
您看看?
我去读了读你以前发的配置文件。里面有 (add-hook 'dirvish-find-entry-hook (lambda (&rest _) (setq truncate-lines t))。我看你都开始逐行分析 dirvish 代码了,想当然以为你肯定已经排查过自己配置了。
这3行解释了 dirvish-find-entry-hook 使用方式的变化: 如果你在这个 hook 中添加的任一 hook 函数有非空的返回值,dirvish 就认为你要自己接管文件的打开方式,然后中止之后的执行。这主要是用来设置默认用外置程序打开某些文件用的。
你把这行删了就好了,truncate-lines 在 dirvish 里默认值是 t 了,这设置已经不需要了。
先排查自己的配置文件难道不是容易的多吗? 最多也就10来项,就算一个一个注释了重启也花不了你这些工夫啊。是因为英文文档不方便读吗?
我考虑过要不要维护一份中文文档来着,想想觉得没必要,直接 ai 翻译一下页面应该差不多了。以后再有 breaking changes 我还是来这里说一下吧, 虽然文档和 docstring 一般都写了。
2 个赞
果然可以了,感谢回复。
我试过,把配置文件都删了,只保留了dirvish的,也是不行。
您说的那行配置我应该也是抄过来的。我也是想当然的认为和文档里的配置一致。
Deeson
345
我昨天更新了最新版,发现打开 dirvish 后,有可能 preview 是空白的,需要上下移动一下光标,才能正常显示 preview。(我在 emacs -Q 下也测试了,也有这个问题),请问有其他人遇到过吗?
Deeson
346
这个提交 Commit b17fdcb 已经修复了,现在没问题啦!
感谢作者的工作! 