可以了, 不是设置
hl-line 应该是 dirvish-hl-line
可以了, 不是设置
hl-line 应该是 dirvish-hl-line
我重装了一次系统后把 emacs 的配置迁移,发现了 dirvish-emerge 的一个奇怪现象。
Arch Linux. Emacs 28.2.
测试配置如下:
;; dirvish 是 git clone 下来的
(add-to-list 'load-path "~/.emacs.d/dirvish")
(add-to-list 'load-path "~/.emacs.d/dirvish/extensions")
(require 'dirvish)
(require 'dirvish-emerge)
;; 抄的文档的配置
(setq
dirvish-emerge-groups
'(("Recent files" (predicate . recent-files-2h))
("Documents" (extensions "pdf" "tex" "bib" "epub"))
("Video" (extensions "mp4" "mkv" "webm"))
("Pictures" (extensions "jpg" "png" "svg" "gif"))
("Audio" (extensions "mp3" "flac" "wav" "ape" "aac"))
("Archives" (extensions "gz" "rar" "zip")))
)
(dirvish-override-dired-mode)
(provide 'init)
(GIF 有点长)
dirvish-emerge-mode
之前,工作一切正常。dirvish-emerge-mode
之后,移动光标,文件不能正常预览。按 RET 无法正常打开文件,会有 cond: Wrong type argument: stringp, nil
的报错。dirvish-emerge-mode
之前,工作又恢复正常。GIF 我录的不够全,在 dirvish-emerge-mode
打开会,分组是能够显示的:
我没有在讨论和 issue 中搜索到与 emerge-mode 相关的问题,麻烦大佬帮忙看看。
看了你左边的文件列表样式就知道问题出在time-style了,和我在dirvish-fd中遇到的一样,可以看楼上的解决方法,其实就是给dired-listing-switches加上一个“–time-style=iso”
Brilliant! 就是这个原因,谢谢你的帮助
忘记之前的系统是啥了,不过我昨天确实把 locale 设置成中文了
公司的电脑, 正常,
回到住处, 当打开了某个目录时, 即 此时也进入了 dired-mode,
但 一片空白, 什么都没有,
对于 非专业的人 来说, 原来这里要, 指定 时间格式, 找了一整天 终于在这里看到了
;但 当前系统中的 时间格式如果是中文的话, 就什么都看不到
(dired-listing-switches "-AFhlvX")
就是一片空白, 同时 这里还设了个, 我现在也不知道有没相关, 不折腾了, 注释掉了
(setq dirvish-hide-details t)
现在加了个 时间格式, 就 OK了
(dired-listing-switches "-AFhlvX --time-style=iso") ;时间格式的问题
希望, 一些比较 个例, 或 典型的现象的 帖子, 能有
特殊的标记
这楼 贴子太长, 真不好看完, 而且还有 几个贴子 更长, 属 “lazycat” 的帖子 更胜一畴
这个贴子, 我其实是有, 粗略看过几次了, 作者官网也看了几次, 都看的 较模糊
非IT人士, 也没时间, 入这么深, 但相关 文字编辑 不少,
但 emacs 真是好工具, 好机器
现在不用 dirvish--debouncing-delay
了吗? describe-variable 找不到,设置了也不起用(延迟 preview)
现在应该是 dirvish-redisplay-debounce
。 另外借这层楼说下, 这几个月实在没精力维护这个项目和回答楼上(以及github issue)的问题,抱歉。主要原因是最近被迫在 windows 上做事,很不自由很不快乐。等过段时间有空会整理一下这个帖子。
可以添加几个热心网友共同维护项目
之前我自己糊了一个小插件,类似大佬的项目,也能在 windows 上面跑(我感觉大佬可以搞一下 windows 的兼容性)
原来在 windows 上的截屏
大佬的这个包 real amazing, 又好看, 又好用, 我现在有一个小小的问题, 切换目录的时候, dirvish-quicksort 设置的排序会被清除, 比如我在当前目录设置了 ctime 排序, 然后我切进别的目录看了一眼再切回来, 就变回 name 排序了, 有办法做到保留设置的排序状态吗, 全局保持也行
最近 dirvish-side 会让 emacs 疯狂变卡,好像一直在查 git 的状态, linux emacs29 pgtk,但是最近没有时间细看,我暂时关掉 side 了
ps:大佬能不能让 side 像 treemacs 那样支持多项目
做了个介绍Dirvish的视频,欢迎大家观看
一些在 Windows 上使用 Dirvish 的心得:
图片预览
在 Windows 下,之所以默认的图片预览会有问题,是因为 Windows 自带一个叫 convert.exe 的程序,与 ImageMagick 的 convert 冲突,系统默认会调用 Windows 自带的 convert。
在 Emacs 中将 ImageMagick 的路径排到最前面解决问题:
(setenv "PATH" (concat "d:/Env/media/imagemagick/;" (getenv "PATH")))
(add-to-list 'exec-path "d:\\Env\\media\\imagemagick")
图片 MediaInfo
多重原因导致图片的 MediaInfo 无法显示。
首先 Dirvish 里,判断是否进行图片 MediaInfo 时,有这样一行:
(defcustom dirvish-show-media-properties
(and (executable-find "mediainfo") (executable-find "pdfinfo") t)
"Show media properties automatically in preview window."
:group 'dirvish :type 'boolean)
也就是说不仅要安装 MediaInfo,还得同时安装 poppler(pdfinfo)才行。
然后就是 Windows 的路径问题,如果不使用 utf8-beta 选项,运行时传给 MediaInfo 的文件路径会是一坨乱码。解决方式也很简单,可以找找站内关于 Windows UTF8 设置的帖子。
(setq default-process-coding-system '(utf-8 . gbk))
视频预览
Dirvish 默认使用 ffmpegthumbnailer 来进行视频缩略图生成。
这玩意并不支持 Windows。试着在 msys2 环境编译,但失败了。于是我选择换一个程序。
目前用的是 mtn: movie thumbnailer 3.4.2 Free Download - VideoHelp
preview-dispatcher 如下:
(dirvish-define-preview mtn (file ext preview-window)
"Preview video files.
Require: `mtn' (executable)"
:require ("mtn")
(when (member ext dirvish-video-exts)
(let* ((width (dirvish-media--img-size preview-window))
(height (dirvish-media--img-size preview-window 'height))
(cache (dirvish-media--cache-path file (format "images/%s" width) ".jpg"))
(path (dirvish--get-parent-path cache)))
(if (file-exists-p cache)
`(img . ,(create-image cache nil nil :max-width width :max-height height))
`(cache . ("mtn" "-P" "-i" "-c" "1" "-r" "1" "-O" ,path ,file "-o"
,(format ".%s.jpg" ext) "-w"
,(number-to-string width)))))))
(add-to-list 'dirvish-preview-dispatchers 'mtn)
我最近因为抄别人的Dired配置也发生了你这个报错。我是MacOS 12 Emacs 28.2 原生Dired。
根据这个网页,我猜测这段代码中涉及的 --group-directories-first
,就是网页中说的-X | --sort=extension
选项,是 GNU 版本的ls
特有的。
在MacOS终端中输入man ls
可以发现ls
没有-X
选项。
把 --group-directories-first
删掉就可以正常运行了。
不过如果你需要这个功能,那你就需要GNU版本 ls
。
brew install coreutils
dired-toggle-read-only 进入编辑模式,替换文件名中的一些字符。在minibuffer里粘贴上需要被替换的字符串,此时, 想光标切换到dir buffer去复制需要替换的字符,却无法切换到dir buffer。
需要啥设置吗?
直接调用 dirvish-side 就可以了
是的,就是想要这种side-panel,但是默认的风格没有图片上这种树状结构而是每个目录都是扁平的。另外,默认好像也没有预览。想要图片上这种来浏览整个代码结构。
修复了dirvish-subtree 下的 omit bug