Neovim 0.5 真香啊

用fennel写配置有啥好处不

  1. 使用了伟大的Lisp语言
  2. 发现原本复制粘贴就能搞定的配置现在得折腾一番时,会觉得自己是个大聪明
  3. 用宏包装aug au看起来优雅一些,(虽然我其实还是拿vim.cmd一裹

我是做了一个快捷键,按两下f2,自动往行尾追加一个分号。现在用习惯了,没有这个快捷键我都不知道怎么加分号了

真实。但是乐趣就在折腾,不误事就好。折腾完成就感足足的

看不懂 不会玩。。。难受 我还是继续emacs吧

Fennel 有 buffer-local variable 吗?Match data 和 current buffer 和 window-configuration 是 first-class citizen 吗?其中的 string 和 buffer 直接拥有 text property 吗?

Emacs Lisp 好处不仅在于是 Lisp 方言,还好在专门针对编辑器的扩展进化了几十年,其他语言中(包括其他 Lisp 方言)绝对找不到类似 save-excursion 或 with-current-buffer(-window) 的概念。

1 个赞

这个内置的lsp ui还挺好看的 感觉emacs的就有点丑了

1 个赞

在 evil 的插入模式下启用 emacs 的光标移动快捷键,很简单.

1 个赞

I like to navigate with evil and edit with emacs

现在感觉 helix 可用性好起来了,什么 tree-sitter based 的 syntax-highlighting 和 built-in 的 lsp 支持都挺诱人的

好像一直没有clojure支持

emacs在开箱即用方面,确实没法跟vim和helix比

别的不说,论开箱即用,Emacs和Vim半斤八两。

3 个赞

这个貌似要看 tree-sitter?不过可以自己添加的https://docs.helix-editor.com/guides/index.html 我看了一下,language support 里确实没有

我感觉 emacs 用鼠标点来点去比 vim 简单。。vim 一开始没设置,鼠标都动不了

1 个赞

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好像进度相当缓慢.

1 个赞

但我这里不只有yasnippet,还有其他情况也会闪。 比如定义了一个class Edge 类型的数组edge,输入e之后会先出来edge[x],闪一下再出Edge