我使用
neovim-remote
/nvr
来避免使用集成终端时出现 nvim 的嵌套实例。这是代码:
# config.fish
if set -q NVIM
# Avoid nested neovim instances with neovim-remote
set -gx EDITOR "nvr --remote-wait"
alias nvim nvr
else
set -gx EDITOR nvim
end
set -gx VISUAL $EDITOR
效果很好。一个痛点是临时文件;这就是我使用
--remote-wait
的原因。如果我不这样做,期望读取临时文件的程序(例如 git 提交,Alt-E
在 $EDITOR
中编辑鱼的命令行)就会中断。
这是可行的,但我知道 neovim 有一个内置的
--remote
功能,我想用它来避免依赖性。这是配置:
# config.fish
if set -q NVIM
# Avoid nested neovim instances with nvim --remote
set -gx EDITOR "nvim --server $NVIM --remote"
alias nvim $EDITOR
else
set -gx EDITOR nvim
end
set -gx VISUAL $EDITOR
但是,这不适用于临时文件。例如,git 抱怨消息为空并中止提交。 Fish 不会修改提示。据我所知,不同之处在于
nvr --remote-wait
会阻塞,直到所有缓冲区都被删除,但 nvim --remote
不会。
目前使用普通 neovim 是不可能的:https://neovim.io/doc/user/remote.html#E5600
Vim 支持客户端服务器中尚不支持的附加功能 在 Nvim 中实现。特别是,不支持任何“等待”变体 还没有。
我发现这个问题需要
--remote-wait
功能。您可以按照此操作来获取更新通知。