我感觉 emacs 用鼠标点来点去比 vim 简单。。vim 一开始没设置,鼠标都动不了
Helix确实在开箱即用上有优势,(n)vim没有吧,treesitter lsp这种虽然在neovim官方repo中提供了最小接口,但具体到需要还得(官方)插件。不过,nvim的lua让人没那么惧怕上手,如果这能视为某种程度上的"开箱即用"的话。
现在已经是neovim 0.10了,开箱易用越来越好了
感觉就LSP而言Emacs的性能相较于Neovim和Vscode差距还是很大的。 就lsp-bridge和clangd而言,我输入之后lsp-bridge会闪一下刷新acm,但是nvim-cmp就不会这样,丝滑得多。
acm闪一下估计是因为bridge 为 yasnippet弄了延迟加载吧, 可能观感上不好.
如果yanippet性能暂时无解的话, 你可以考虑写一个acm-switch-template
命令, 绑定在一个键位上,正常补全不带template, 需要的话可以临时切换就行了, 其实我在corfu就是这么玩的:
(defun corfu-switch-yas ()
"Switch completion backend between yasnippet and default.
If no corfu frame exists, call completion with yasnippet directly."
(interactive)
;; 如果不是 yasnippet corfu frame 就切换为 yas 补全
(if (not (and (frame-live-p corfu--frame)
(frame-visible-p corfu--frame)
(eq (corfu--metadata-get 'company-doc-buffer)
'yasnippet-capf--doc-buffer)))
(let ((completion-at-point-functions '(yasnippet-capf t)))
(completion-at-point))
;; 否则就正常补全
(completion-at-point)))
但是这样的话 延迟的timer就要去掉了 @manateelazycat 话说yasnippet的原作者搞得新 snippet package好像进度相当缓慢.
但我这里不只有yasnippet,还有其他情况也会闪。
比如定义了一个class Edge
类型的数组edge
,输入e之后会先出来edge[x]
,闪一下再出Edge
顺带问一下flash.nvim在Emacs里有没有对应的实现?
有点像 Symbol-Overlay
可以发视频看看啥效果?
fFtT Doom Emacs已经在evil里做了(虽然不清楚是什么包)。
Standalone Jump和avy-goto-char-timer比较像,但是labels不会包括有可能键入的字符,所以没有timer(代价是labels变少了)。
比如这张图里面match再多h也不会作为label:
Search Integration没找到对应实现,相较于Standalone Jump而言不同的一点是它可以全文搜索而不仅限于当前屏幕(当然label也更少)。
TreeSitter抽象语法树的快速选择也没找到对应实现。(和eaf-browser-copy-code很相似,不过用在代码而不是eaf里面,而且实现差别应该很大)。
跟Symbol-Overlay好像没啥关系啊,flash不仅高亮而且能跳转。
录视频的话我还在找Hyprland里面的录屏工具 所以暂时搞不成。
我目前没有看到和flash.nvim类似的包,只能自己hack或者等大神了。
这个插件有啥好处哇?
可以试试我的几个脚本 可以录屏 视频转gif
我是把脚本入口放到消息通知 的按钮面板上
效果可以看我我这个回复里的动图
可以在这个仓库里找找有没有你想要的
vscode、neovim、vim、emacs的awesome我都读过,如果不把neovim当一个后端的话暂时没有类flash.nvim的。
这个东西把Neovim本身一个特性叫命令行预览拿过去当LSP rename的预览,这件事在Emacs里应该也是没有实现的。
不带语法考量(tree-sitter)的话,anzu 和 symbol-overlay 效果类似。vim模式的话有anzu-evil 支持