尝试自己写了一个 dashboard ~ 大家帮忙修正完善

没有依赖 dashboard
我这边 .emacs.d/elpa 目录内是没有 dashboard 这个插件目录的
可能有两个地方是是要完全自行修改一下的

(defconst blove/dashboard-logo (expand-file-name "lisp/blove-pic/ox.png" user-emacs-directory))
;; 这里 (expand-file-name "lisp/blove-pic/ox.png" user-emacs-directory) 需要指定自己的logo文件

还有,在这个函数中有一个 face 是我为了自适应 明/暗 主题而制定一个的一个 face
(defun blove/make-dashboard-link (label link)
  "Return the file with full path."
  (interactive)
  (insert-button label
				 'action (lambda (_) (find-file link))
				 'follow-link t
				 ;;'face 'blove/dashboard-link ;; <-- 这里修改成自己的face或改成
                 'face '((:foreground "#ff0000")) ;; 或随意改自己想要的 face
				 )
  (insert "\n")
  )

启动时间,目前我还没研究太透。只是将 dashboard 的时间显示函数拿来修改使用。我也发现启动时间不准。或者也许是我这整个程序造成的启动时间延长。 :see_no_evil:

欢迎加入造轮子的队伍 :joy:,如果觉得emacs-dashboard太复杂,或许可以参考一下我一直在用的 maple-scratch, 也可以直接使用已有的函数自定义想要的内容,比如

(defun maple-scratch-test()
  (concat "HELLO " "WORLD"))

然后设置(setq maple-scratch-items '(maple-scratch-test))即可,默认也支持是否居中,启动时间也可以参考maple-scratch-startup这个函数

2 个赞

好的。十分感谢! :+1:
我研究研究! :nerd_face:

我在你的基础上修改了一点 sniper-dashboard.el

满足了我自己平时的需求吧。

花了一两天的时间, 突然我感觉又不是很值了,因为 对比 emacs-dashboard ,启动时间上 感觉没提升多少。

就当学习 elisp 了吧

3 个赞

:blush: :+1:我参考、学习了你修改过的!:blush: :+1:感觉很有收获!感谢!!!
:handshake:同时也为了学习 elisp !:handshake:

现在只有一些 按键 没 绑定上去,我其实想实现 只要光标在 recent-file 的任何一个 条目上, 按 回车 就直接打开文件(sniper-dashboard-return),然后在这个页面里 实际有用的功能就是 recent-files, 所以 我想不管是 上下键,只会在 recent-files 的条目里 循环跳(sniper-dashboard-next-section)。

目前功能是实现了, 按键 没 绑定上去,还没搞明白

我这边安装了 evil,切换到 emacs 模式,快捷键都实现了你希望的功能。按 tab 键在 recent-files 列表中循环,按回车键直接进入光标停留所在行的文件。
当切换到 evil 模式,其它绑定键都有效,按 tab 也在列表循环。只有在按 回车键 时,会直接选中 all-the-icons 的图标,不能进入选中文件。
如果将光标移动到文件路径名上,按回车能进入文件
如果多次按 回车键,会继续往下一行移动,也是不会进入选定文件。
原因可能是,blove/make-dashboard-link 函数设置的文件链接,只对 recent-files 的路径文件名生效,而没有将 all-the-icons 纳入 link

我的现象跟你的一样。

不是这个原因, 打开 describe-mode 里面可以看到

(this binding is currently shadowed)

估计是跟 evil 按键绑定有关系。

recentf 路径可以显示相对的么? 有的时候路径太长了,反而看不到完整的文件名。

好像是 evil-ret 命令绑定了 回车 RET 键
我目前的土办法是,给 sniper/open-dashboard 末尾加上

(define-key evil-motion-state-map (kbd "RET") nil)

解绑 回车键。然后 evil 模式下按回车键也能进入文件了。


如果加个判断模式的条件,通过进入 sniper-dashboard-mode 解绑 RET

(boundp 'sniper-dashboard-mode)
;;; 目前我这边返回值是 nil

进入 evil-mode 再绑定回 RET,也许可以?

只显示 简单的文件名 ?

这牛头🐎看着很酷!

那是楼主的牛头 雀食帅

比如太长头尾显示全,中间部分显示一个字或字符

我知道你的需求,就是 doom-modeline 有这个功能,但是我没这个需求 :sweat_smile: