好像vim7.2的自动补全有个缺陷啊,天生对提示的支持不好

Vim、Emacs配置和使用
回复
头像
fanhe
帖子: 2357
注册时间: 2007-03-24 23:45

好像vim7.2的自动补全有个缺陷啊,天生对提示的支持不好

#1

帖子 fanhe » 2010-12-01 0:17

我想作成自动提示完成,好像一般的ide一样

但是我看了vim的说明,是没办法做到仅仅提示的
按出了全程补全之后,必定会选中第一个,要切换为不输入而仅仅提示的话,要手动<c-p><up>
那个叫acp的插件就是这样实现的
结果就是,编辑大文件时,光标跳来跳去,非常不爽

到底有没有办法,我调了很久,修改了源码才让supertab,code_complete,acp兼容地工作,居然acp这么不争气
最终还是得按键去补全么

还是7.3会提供个仅仅弹出补全选单而不选择的功能?
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 好像vim7.2的自动补全有个缺陷啊,天生对提示的支持不好

#2

帖子 lilydjwg » 2010-12-01 11:28

这种功能早就有了,虽然不太一样

代码: 全选

set completeopt+=longest
风间星魂
帖子: 490
注册时间: 2009-06-20 23:53

Re: 好像vim7.2的自动补全有个缺陷啊,天生对提示的支持不好

#3

帖子 风间星魂 » 2010-12-01 19:53

:em11
才知道 :em20

7.2有效 :em11
头像
fanhe
帖子: 2357
注册时间: 2007-03-24 23:45

Re: 好像vim7.2的自动补全有个缺陷啊,天生对提示的支持不好

#4

帖子 fanhe » 2010-12-01 21:05

lilydjwg 写了:这种功能早就有了,虽然不太一样

代码: 全选

set completeopt+=longest
不行的,这个也会默认改变输入的文本,只是之插入最大的公共文本而已
longest 只插入匹配的最长公共文本。如果显示菜单,用 CTRL-L 来插入更
多的字符。是否忽略大小写取决于补全的类型。缓冲区文本使用
'ignorecase' 选项。
我留意过vim的关于弹出补全的选项了,还是没办法原生支持仅仅弹出而不插入的,至少两次操作才能实现,这样的话显示就会晃,没办法

除非修改源码,还是那群人都习惯按键才补全
有一些ide的功能,vim还是没办法做到的
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 好像vim7.2的自动补全有个缺陷啊,天生对提示的支持不好

#5

帖子 lilydjwg » 2010-12-01 21:15

fanhe 写了:不行的,这个也会默认改变输入的文本,只是之插入最大的公共文本而已
longest 只插入匹配的最长公共文本。如果显示菜单,用 CTRL-L 来插入更
多的字符。是否忽略大小写取决于补全的类型。缓冲区文本使用
'ignorecase' 选项。
我留意过vim的关于弹出补全的选项了,还是没办法原生支持仅仅弹出而不插入的,至少两次操作才能实现,这样的话显示就会晃,没办法

除非修改源码,还是那群人都习惯按键才补全
有一些ide的功能,vim还是没办法做到的
1. 为什么不需要自动插入公共文本呢?
2. Vim不是IDE
3. 要不你提交补丁吧。
4. 按键告诉Vim你希望补全,所以Vim给你补全。当你不想要它时,它不会自己跳出来烦人。
风间星魂
帖子: 490
注册时间: 2009-06-20 23:53

Re: 好像vim7.2的自动补全有个缺陷啊,天生对提示的支持不好

#6

帖子 风间星魂 » 2010-12-01 22:08

我打开了这个选项后输入文字不会改变啊。只弹选项而不会改变缓冲区文本。

我不明白楼主到底那点不满意。
头像
fanhe
帖子: 2357
注册时间: 2007-03-24 23:45

Re: 好像vim7.2的自动补全有个缺陷啊,天生对提示的支持不好

#7

帖子 fanhe » 2010-12-02 14:16

风间星魂 写了:我打开了这个选项后输入文字不会改变啊。只弹选项而不会改变缓冲区文本。

我不明白楼主到底那点不满意。
那是你补全选项里面不够多,你试试,它会自动变成time

代码: 全选

timer
time
tim<C-x><C-n>
当开了longest选项的时候
当一篇很长的文本,我不确定到底我有没有某个字符的补全,于是我按一下补全,但是实际上没有这个补全,于是vim就会自作聪明地填入了其他补全的最大公共文本,我要退回原来的文本要额外操作

反正,就是对提示的支持不好,我有时候仅需要提示而不是强行输入,因为我不知道有一些词有没有补全,我要先看一下,如果没有,我就继续打字下去,而不是现在这样,强行输入了第一个匹配,我要退回原来的文本再打字。
本来vim很多设定都很细的,但是深入后发现,有一些功能还是无法实现的。
风间星魂
帖子: 490
注册时间: 2009-06-20 23:53

Re: 好像vim7.2的自动补全有个缺陷啊,天生对提示的支持不好

#8

帖子 风间星魂 » 2010-12-02 14:29

fanhe 写了:
风间星魂 写了:我打开了这个选项后输入文字不会改变啊。只弹选项而不会改变缓冲区文本。

我不明白楼主到底那点不满意。
那是你补全选项里面不够多,你试试,它会自动变成time

代码: 全选

timer
time
tim<C-x><C-n>
当开了longest选项的时候
当一篇很长的文本,我不确定到底我有没有某个字符的补全,于是我按一下补全,但是实际上没有这个补全,于是vim就会自作聪明地填入了其他补全的最大公共文本,我要退回原来的文本要额外操作

反正,就是对提示的支持不好,我有时候仅需要提示而不是强行输入,因为我不知道有一些词有没有补全,我要先看一下,如果没有,我就继续打字下去,而不是现在这样,强行输入了第一个匹配,我要退回原来的文本再打字。
本来vim很多设定都很细的,但是深入后发现,有一些功能还是无法实现的。
恩,确实有这个问题,这个时候我就按ctrl+e放弃了。
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: 好像vim7.2的自动补全有个缺陷啊,天生对提示的支持不好

#9

帖子 自由建客 » 2010-12-03 3:16

对!我也想要 bash 那样的补全!
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 好像vim7.2的自动补全有个缺陷啊,天生对提示的支持不好

#10

帖子 lilydjwg » 2010-12-03 13:15

自由建客 写了:对!我也想要 bash 那样的补全!
我更喜欢 zsh 的补全方式 :em02
回复