Neovim 0.7 发布了

https://github.com/neovim/neovim/releases/tag/v0.7.0

我注意到的几个变化:

  1. drop python2 支持。
  2. remote TUI 初步支持。
  3. filetype.lua
  4. global statusline。
  5. augroup、autocmd、user command 的 lua 接口。
  6. 新增 Recording、RecordingLeave、DirChangedPre 等自动事件。
  7. 新增 vim.keymap, nvim(_buf)_set_keymap 可添加描述。
  8. lsp、treesitter 的改进。
  9. uv.thread 异步线程支持。
  10. precompile embeded lua to bytecode
  11. vim.diff,粘贴的异步支持(更希望有 pum 的)

还有啥应该注意到的?


对了,Neovim 上游依赖 libvterm 有 bug 没解决,最新版编译不了,目前仍在用 0.1.4 版本。

3 个赞

global statusline 好像要

2 个赞

neovim的版本演进真快,跟不上了,目前也没用到neovim强相关的特性,准备回到vim

关注的人只会觉得演进太慢了。。。remote TUI 搞了几年还没搞完。

怎么会呢?比如 copilot.vim 插件需要 Neovim 的 virtual text 特性支持,vim 上要用很费劲。还有其它一堆特性,最近新出的插件也是优先支持 Neovim 的 。https://github.com/rockerBOO/awesome-neovim

2 个赞

remote tui是啥?类似vscode的remote?

The final goal of this project is to make TUI and nvim server to run as separate processes and communicate with each other over RPC channel. This also results in removal of ui_bridge completely.

这个版本的实现还仅是类似 vim 的 client-server,很早就有 nvr 能做到。要实现以上引用的目标还有很多要做。

这个支持通过网络远程调用吗

不支持。协作方面单机用 tmate、wemux,共用 ssh 主机是老技能了。

相对 vscode 的主要劣势是不支持多人同时编辑,其它基本 ok。

1 个赞

老实说 99%的功能用不上

1 个赞

我的意思是我用的功能很有限,vim就能满足了

正常。个人需求不一样,好些人只用 vim/nvim 编辑基本的配置文件。


录了个 tmate 的简单演示,IP 地址打个码发上来。

file

左边是本地,右边是只读 ssh session。

3 个赞

嗯,确实,我用coc.nvim,基本上没什么自定义内容

是的,vim我一般用来修复emacs

11 个赞

内置 lsp 客户端主要是轻便,自定义强。到哪找内存不到 80 M 功能齐全的 lsp 客户端呢。

[-]─82399 wezterm-gui                                      24 ashfinal    122M ⣀⣀⣀⣀⣀  1.2  │
 │ [-]─82411 zsh (-zsh)                                     1 ashfinal    8.4M ⣀⣀⣀⣀⣀  0.0  │
 │  │ [-]─82499 nvim                                        6 ashfinal     30M ⣀⣀⣀⣀⣀  0.4  │
 │  │  │  └─ 82562 lua-language-se (lua-language-server)    6 ashfinal     46M ⡀⣀⣀⣀⡀  0.0  │
 │ [-]─82604 zsh (-zsh)                                     1 ashfinal    8.2M ⣀⣀⣀⣀⣀  0.0  │
 │  │  └─ 82675 btop                                        3 ashfinal    5.8M ⡀⣀⣀⣀⢀  0.4  │
 │  └─ 82747 zsh (-zsh)                                     1 ashfinal    8.1M ⣀⣀⣀⣀⣀  0.0  │

最近几天的体验是:不管用什么编辑器,你得试试 copilot 插件。完全没有之前担心的网络卡顿,猜测很准。

3 个赞

意外解决了一个困扰许久的小问题。wezterm 的边角字形很细,多少看上去有些奇怪。

设置 custom_block_glyphs = false 就可以了

作者文档中提到默认 true 是为了规避 freetype 的一个 bug。不过多数 nerd 字体并不需要。

Alacritty、kitty 也不需要这个。

有点没太明白tui remote的用处是?我理解现在直接用tmux分屏然后不是随便ssh不同的server么?

挺感兴趣的,emacs 有合适的copilot 方案吗

https://github.com/zerolfx/copilot.el

Ref: https://emacs-china.org/t/copilot/20348 Copilot 非官方插件

1 个赞

很赞,谢谢你

与 ssh 不相同。ssh 连接的 server 是不同的 nvim instance,而 tui remote 是同一个 instance。

后者显然信息共享协作更方便,用户体验更协调统一。允许 nvim 以 headless 的形式运行,允许与内嵌 terminal 更深的融合,允许 rust、swift、python、javascript 等 10 多种语言以异步或队列的形式与 nvim instance 交互,允许将 nvim editor view 的一部分同步绘制到 GUI 客户端其它需要的地方,editor 文字的改变在其它地方以 button、slider、switch、图像甚至 3D 的形式呈现,而 GUI 控件的变化也能同步回 editor view … …等等。

个人有限的理解:这个是前后端分离的继续,是实现 nvim 嵌入 everywhere 愿景的一步。