比 deoplete 更快!比 YCM 更轻!支持 neovim/vim8 的自动补全框架!

2017-03-04 14:19:02 +08:00
 pony279

一大波 gif 在这里: https://github.com/roxma/nvim-completion-manager/issues/12

关于为什么更快的问题,请移步 项目 README 文档。

当然可以和 @autozimuLanguageClient-neovim 配合使用

33118 次点击
所在节点    Vim
107 条回复
yuuko
2017-03-04 17:31:59 +08:00
已经用上了,很不错
pony279
2017-03-04 20:10:28 +08:00
不知道是标题的原因,还是文案的原因,还是其他啥原因, 15 天前发过 https://www.v2ex.com/t/341176#reply2 ,到现在也有 400 多点击了,才 1 人收藏,今天发现由 vim 这个板块又发了一次,结果 400 多点击, 7 人收藏
(´・ω・`)
lll9p
2017-03-04 20:12:30 +08:00
好东西,不过标题起的不够好啊。
pony279
2017-03-04 20:16:38 +08:00
@lll9p 比如?
lll9p
2017-03-04 20:25:43 +08:00
@pony279 我也不会。
tracyone
2017-03-04 21:14:29 +08:00
补全的准确性呢?语言的支持呢
pony279
2017-03-04 22:04:28 +08:00
@tracyone
目前支持 c/c++, php, go, python, javascript, css
配合 autozimu 的 LanguageClient-neovim 的话是有非常强的扩充能力的,当然精力有限我只测试了 PHP , autozimu 应该由测试过 javascript 和其他语言
具体怎么评价准确性我说的太主观,希望能亲自试一下,有疑问或者不好用的地方发 issue 即可
simple26
2017-03-04 22:27:15 +08:00
一点小建议:

关于文档

1. 英文 README 可能需要花费一些时间,所以建议先准备一份详实的中文 README 。这么做的主要目的是可以理清思路,毕竟母语比较容易组织语言。有了中文准备以后,再做一份英文的相信会轻松不少。

2. 更快,更轻。既然已经有了比较,那么最好就好好排排版,放到一起两两对比,既然教给大家一些知识,也能让大家鲜明地感受到此间差异。如果觉得这么做不合适的话,也可以只简略地提两句更快更轻的主导因素。相信很多人不会去点开 *这里* 的链接....

3. 偶尔可以当回标题党 :) 至于怎么当这个标题党,就看你的语言能力了, 我只能说注意拿捏...

关于试用

neovim 试用起来没啥问题,但是 vim 可能还是需要再调整...... 同样一份 vim 配置, neovim 下 python 正常补全,但是 vim 下无法自动补全。

加油
rashawn
2017-03-05 00:12:48 +08:00
楼主 楼上提建议的 问问他们能不能提 PR
reus
2017-03-05 00:20:08 +08:00
没有 deoplete 那样的 fuzzy match? 就是打 pf / pt 等可以选中 Printf 的
NoAnyLove
2017-03-05 01:59:46 +08:00
有参数补全吗? YCM 官方分支一直没有支持参数补全,不过有一个 fork 的分支倒是支持了,但是一直没有合并回去。
PythonAnswer
2017-03-05 08:46:33 +08:00
目前的行情是用 vim8 还是 neovim ?哪种人多
pony279
2017-03-05 09:07:38 +08:00
@reus 支持 fuzzy match ,有点问题,光标容易闪,不过我估计 deoplete 也面临着同样的问题, https://github.com/roxma/nvim-completion-manager/issues/8

@NoAnyLove 你是指类似 ultisnips 的参数补全?这个在我的 todo 里面,还没开始 https://github.com/roxma/nvim-completion-manager/issues/36

@PythonAnswer
哪种人多我不清楚
如果你是 linux/mac 用户,个人强烈推荐 neovim 。 windows 下的 neovim 我没有用过,就不评价了。
对我这样的插件开发者来说 RPC 是一个大 killer 。除此以外还有其他我关注的小的特性,都将会在 neovim 里面实现,比如 `<c-h>` 和 `<Backspace>` 按键的区分。又比如我之前写的小插件, https://github.com/roxma/vim-tmux-clipboard ,也依赖着 neovim 的 TextYankPost 。
pony279
2017-03-05 09:10:00 +08:00
@simple26 谢谢

关于 vim8 的补全问题我想详细了解下具体是怎么重现?
htfy96
2017-03-05 09:18:49 +08:00
lang-server 是个好东西,可惜对 cpp 的支持还没有 ycm 完善
NoAnyLove
2017-03-05 09:22:04 +08:00
@pony279 我是指向 vim-jedi 那种,输入函数名后,会提示对应位置的参数是什么。比如像这种悬浮窗口的提示方法:

https://github.com/davidhalter/jedi/raw/master/docs/_screenshots/screenshot_function.png

或者像这种,在输入完函数名后,将函数调用和形参一起补完,然后再依次移动到每个参数的地方,替换成真正的实参

https://camo.githubusercontent.com/a823bf9ec55b5b31aaf5a28946f7a0a80f7fc560/687474703a2f2f692e696d6775722e636f6d2f6d7873713959792e676966

比如输入 os.setgid ,补完会自动补全 os.setgid(gid),然后按下 Tab 键(或者其他的什么键),会自动移动到 gid ,填写真正的实参。

你提到的 issue#36 好像有点像第二种,不过不知道有没有包含输入实参自动替换掉原来的内容,以及按下某个按钮,自动跳到下一个参数
pony279
2017-03-05 09:27:52 +08:00
@NoAnyLove
vim-jedi 的悬浮窗有些 BUG 和不想要的特性,比如会改变文档的是否已修改的属性。 https://github.com/neovim/neovim/issues/5808

NCM 有类似的特性,当你的光标停留在 `(` 或者 `,` 后面,会有一个 popup menu ,什么都不补全,只是显示函数参数。
```
foo_bar(|)
```
pony279
2017-03-05 09:29:46 +08:00
@NoAnyLove
你说的 Tab 按键跳转就是我计划跟 ultisnips 集成的特性。目前还没有实现。
PythonAnswer
2017-03-05 09:31:03 +08:00
@NoAnyLove 多谢!不过我是 win 用户啊。。
reus
2017-03-05 11:16:00 +08:00
@pony279 闪这个问题不大, deoplete 我用很久了,从来没觉得是个问题…… 不过如果可以不闪当然好

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

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

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

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

© 2021 V2EX