悬浮窗口的作用,除去某些 nvim 插件花里胡哨的装 B 之外,是引发符号系统质变的催化剂。
vim / emacs 最强的地方之一是命令行工具的结合,其中与 ctags/gtags/cscope 结合打造出符号系统,更是杀手锏。
与 IDE 相比,一是索引快,用 emacs/ vim 就是要快。二是上手快,不需要项目的构建信息,特别是这个项目的构建不是那么容易的时候,”牺牲准确性来换取速度“ 就是一本万利的事情,这方面我认为是很多人选择 emacs / vim 而非 IDE 的原因,用一名后端 C++ er 的话说,反正 IDE 也是要退化成文本编辑器的,那还不如选灵活的 vim。
而 vim 自从有了悬浮窗口后,在这方面是如虎添翼,一飞冲天,最强符号索引系统已经实质名归了。
而且先不说实用性,就颜值来说也是性感的很。所以啥时候 Emacs 也能有这个玩意?
1 个赞
eldoc-box:
以及vertico-posframe能实现类似telescope的效果
这些包的原理应该都只是将minibuffer里的内容显示到posframe上,内容实际还是在minibuffer里。
我是从Nvim转到Emacs的,一段时间用下来就习惯在minibuffer中查看各种信息了,也挺方便的,而且感觉更简洁。
不过最近又看到了一个nano-dialog
还么看代码,不知道这个的原理是什么
citre插件的citre-peek 已经实现了你说的这个浮窗预览别的 tags 所在的文件的功能。(基于 overlay)。
此外 gui 一直都有浮窗(child frame),但是 childframe 应该很难实现到 终端版本里。
org
2023 年4 月 22 日 13:45
5
有看到这个windows平台专有的项目,也有popup功能,emacs实现的话,万一你期待的功能没有弹窗,还是会失望的 ,比方说终端就不支持posframe,gui和终端的某些功能就会不一样。
这就是最好的符号插件和最好的符号系统的差别了。
如果官方支持的话,那么已有的 counsel-rg, projectile-rg, helm-rg 等全部插件都能从中受益,用户想要窗口怎么弄自己封一层即可。
有生之年能不能在终端用上Emacs悬浮窗还是个问题。
Emacs 关键问题是, 终端悬浮窗口最好和 child frame 编程接口一致, 同时不能像 overlay 那样实现, 字体对不齐会影响终端弹出框的位置。
GUI child frame 不比那个悬浮窗口好多了,Vim 的悬浮窗口能做到这样?
org
2023 年4 月 23 日 22:56
12
确实可以,而且类似于lazigit ranger这种面板式的终端工具,在悬浮窗口中也能很好使用。
GUI 的 Emacs 用户确实不关心浮动窗口了,因为 child frame 已经很好用了,而且有了很多基于 child frame的成熟插件。
感觉 Emacs 需要还需要一个支持终端的 child frame,这样在终端下使用 Emacs 的用户也 Happy 了。
之前在 emacs-devel 邮件列表看到有大佬提过要实现终端的 child frame,但后来没声音了,不知道进度如何了?
参考邮件列表的讨论:Implementing child frames on terminal
org:
确实可以
你注意看我的截图,弹出的窗口是超出 Emacs 的窗口的,vim/nvim 能做到这一点?
Lee
2023 年4 月 24 日 01:04
15
请问这是哪个补全插件?另外,你的配色感觉很好看啊。
补全是 ivy 全家桶,用了 nerd-icons-ivy-rich 美化
主题我用的 doom theme / doom modeline
Lee
2023 年4 月 24 日 02:06
18
ivy 可以代码补全?不是lsp-bridge、corfu这些lsp插件吗?
哦,你说图里面的,那个就是普通的 company + company-box
corfu 和 company 是前端,负责用什么样式展示内容(corfu 不属于 lsp)
而 lsp-bridge 同时提供了前端和后端
2 个赞