(发布) 新包 oe

借鉴了 大佬@yibie 的 Oil ,我实际更多是用来查看文件树,文件树状态可保存,所以大大减少了各种翻文件的次数。

2 个赞

哈哈,免贵大佬,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

1 个赞