Deoplete 也可以在 vim8 上跑了

2017-10-15 19:36:01 +08:00
 pony279
https://github.com/Shougo/deoplete.nvim/pull/553
10225 次点击
所在节点    Vim
36 条回复
jsfaint
2017-10-17 09:01:49 +08:00
@simple26 #19 从用户角度当然是开箱即用最好。作为用户我是挺怕 neocomplete/deoplete 那种需要调教才能用的 plugin
不过单个仓库维护也是好处的,插件的变动不会影响到 ncm 核心部分,可以单独维护。比如之前给 neoinclude 和 neco-syntax 增加 ncm source,其实我有点怕把 shougo 的仓库搞乱了 :)
说起来 completor.vim 好像也把一部分 source 新增成单独仓库了,估计也和 ncm 一样是历史原因
jsfaint
2017-10-17 09:04:21 +08:00
@BBCCBB #20 你这是歧视~~~ go 需要引入 gocode,python 需要引入 jedi,js 需要引入 tern~~~哈哈哈
BBCCBB
2017-10-17 09:11:33 +08:00
@jsfaint 主要是你这个 gtags 不怎么常用啊喂, ==
jsfaint
2017-10-17 09:19:37 +08:00
@BBCCBB #23 如果你不做 C/C++可能确实用不到,如果做 C/C++强烈建议试用 :)
gtags 的体验要比 ctags 好的多,速度快,支持多种搜索,支持增量更新
https://github.com/jsfaint/gen_tags.vim
simple26
2017-10-17 09:34:46 +08:00
@jsfaint 有可能,不过也有可能因为 swift 的补全工作要比 go rust 这么仅需要一个 daemon 的来得多 所以 completor.vim 把它单独了一个 repo 像只需要一个 daemon 就能工作的感觉还是“能省则省”
jsfaint
2017-10-17 09:38:18 +08:00
@simple26 #25 同意,感觉你说的有道理。不过 completor.vim 作者不修 clang 的 bug,不回 issue,我已经粉转路人了
pony279
2017-10-17 11:16:31 +08:00
@simple26 @jsfaint

早期为了吸引用户,我是倾向于把功能集成越多,越开箱即用越好的,这也是为什么 js, go, python 都是 buitin 的原因,开发这几个 source 难度也比较低。

所以最初的用户主要是写 python 和 js

但是后面从维护角度看,会遇到越来越多的问题

1. 会有不同用户在 NCM 上提和 NCM 核心代码没有直接关联的事情,这对于同样关注 NCM,但是又不使用这类语言的人来说就是信息干扰,那么会更容易 unwatch 这个项目
2. 不同的 source 会有不同的依赖,这同样会导致 NCM 的文档膨胀,造成信息干扰。
3. 时间长了同一个语言会出现不同的选择,比如现在 javascript 有 ternjs 和 flow。如果放在 NCM 里面,我根据个人喜好选择势必会造成另一部分用户的不满。
4. 有些 source 需要针对项目做更多的配置,比如 clang,需要配置和检测 compile_commands.json,而这部分代码的功能可能和同类插件重叠,会造成多余的维护工作。

当然太分散也有不好的地方,将来 NCM 要做一些 breaking change 非常困难,之前就出现过一次改动,然后我接连改了几个 source,然后再给别人维护的 source 发 PR。

对我来说最理想的情况是 NCM 只是一个单纯的补全框架,然后补全 source,连同 goto definition,refactoring 之类的语言支持包作为一个插件维护。

asyncomplete.vim 的作者大概也是这种想法,所以从一开始就没有 builtin。然而这种方案在一开始确实比较难吸引用户。
jsfaint
2017-10-17 15:53:00 +08:00
@pony279 #27 其实分开单独仓库还好,毕竟这 plugin 本来就是给开发者用的。简单的配置成本开发者都能接受
asyncomplete 目前存在几个问题:
1. 作者想要拿掉 python 支持,但是目前全用 vimscript 的实现有很多奇奇怪怪的 bug
2. source 都单独剥离出来了,source register 却还要自己在 vimrc 里去 register,这有点奇怪
3. vimscript 的性能确实挺惨的。。
BBCCBB
2017-10-18 16:51:33 +08:00
glues
2017-11-03 15:27:28 +08:00
为什么只能基于当前的 buffer 做关键字补全,不能跨 buffer 吗?

ps:这个插件有 QQ 或者微信群吗,相互交流一下?
henices
2017-11-09 14:33:18 +08:00
[vim-hug-neovim-rpc] rpc method [nvim_buf_line_count] not implemented in pythonx/neovim_rpc_methods.py. Please send PR or contact the mantainer.
jsfaint
2017-12-12 15:02:10 +08:00
😂 @pony279 rox 你有在 Windows 上用过么? gvim + deoplete + nvim-yarp + vim-hug-neovim-rpc
我这边在 Windows 速度特别慢,大概要等 5,6 秒才会弹出补全窗口,但是在 Linux 和 mac 上都是秒开
pony279
2017-12-12 17:48:55 +08:00
@jsfaint hmm... 没有在 Windows 平台测试过
pony279
2017-12-14 11:53:31 +08:00
@jsfaint

https://github.com/Shougo/deoplete.nvim/issues/471#issuecomment-351259526


> deoplete performance is bad on Windows.
> It is well known problem.

> If the issue is fixed, the performance problem will be relaxed.


大概是这样?
jsfaint
2017-12-14 17:33:58 +08:00
@pony279 #34 嗯,昨天和 shougo 在 gitter 上讨论了好久,at 你没反应。哈哈哈
jsfaint
2018-02-05 13:11:29 +08:00
@glues #30 跨 buffer 你需要这个 plugin
https://github.com/fgrsnau/ncm-otherbuf

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/397821

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX