借鉴了 大佬@yibie 的 Oil ,我实际更多是用来查看文件树,文件树状态可保存,所以大大减少了各种翻文件的次数。
哈哈,免贵大佬,oe 这个包不错呀,功能比我的 Oil.el 要完善多了
session 部分是何意?
就是字面意思,可以保存打开的树形;比如你打开一个项目,有很多文件在这个树形里展示,但是你又切到了另外的位置,你就可以提前保存这个session,那么想回到原来的位置就可以恢复。
我懂了,临时会话的意思,不过我觉得 session 不太直观, 应该是一个暂存区的意思
可以用快捷键返回到上一个 session,或者进入到下一个 session 吗?
目前的设计是是restore的方式,你可以选择你保存的session。另外还有个oe-session-recent可以有最近去的地方,不用自己保存,这个文件夹跳动历史前后也有快捷键。
你也可以用 z 跳转,也很方便。
我试了一下,这个持久化功能居然可以只用dired实现。
用C-x C-w直接把dired buffer内容写入某个文件,恢复时重新打开这个文件,执行dired-virtual-mode把它作为dired buffer加载就实现了恢复。
还有创建子视图的功能,在dired buffer里按下i就可以在不消除上一个视图的情况下,在下方插入当前选中目录的视图。只要按下C-<up>和C-<down>就可以在视图之间按创建顺序跳转了。
把dired视图转为可编辑文本这件事,emacs有一个自带的wdired。但是oil.el里做的批量创建新文件功能,wdired不支持。
这个编辑的功能注意哈,比如 a 文件 和 a 文件夹,是不能够做类似 “a/” 删除 “/” 变成a 文件的。但是可以做类似多文件的创建;给a 文件改为b ,b的内容还是a;还可以做a/b这种的创建。总之编辑文件这块我认为已经够用了,我主要是用来浏览树形文件用的,展示的多,而且配合自带的emacs搜索功能,跳转非常好。
这个dired-virtual-mode的操作我好像没成功,不太懂。
做的功能好多,没注意到文件树视图这一点。
在浏览代码的时候的确经常重复打开同一个文件树,通过history直接跳回这个目录的话又会看不见它的上一级目录了。treemacs这种侧边栏文件树看起来又不是很舒服,不如dired直接。
你的dired buffer里加了icon可能会导致解析失败。
哦,这样啊。反正这个包暂时我用的还可以,它解决了我总是重新用find file找文件的情况,我可以特别直观地看到文件在哪里,如果还是会丢就保存一个session。
这个包是可以在dired 和 oe 两边切换的。
(defun find-file--handle-directory (orig-fun &rest args)
"If the file is a directory, open it in oe instead of Dired."
(let ((filename (car args)))
(if (and (stringp filename)
(file-directory-p (file-name-as-directory filename)))
(oe-open (file-name-as-directory filename))
(apply orig-fun args))))
(advice-add 'find-file :around #'find-file--handle-directory)
另外这个没设置的话,平常用find file进入的还是dired