我读到CTRL + P是VI中的自动完成捷径,但是自动完成给出的建议对我来说并没有多大意义。
从re包中说,有一个名为findall的方法。当我执行CTRL + Space时,Eclipse可以推荐该方法:
但是当我在VI中尝试自动完成时,它找不到findall方法。唯一的建议似乎是我之前输入的命令与re模块无关。
任何人都可以给我一些提示,这是VI中CTRL + P背后的自动完成故事,我怎样才能调整它以便它与Eclipse的自动完成一样好。
(每当我怀疑VI的力量时,事实总是在于我缺乏发现VI之美的力量)
谢谢!
答案 0 :(得分:3)
在vim <C-p>
中不是唯一可用的完成快捷方式。应使用<C-x><C-o>
调用为python定义的Omni完成,然后使用<C-n>
/ <C-p>
选择变体。还有更多完成类型,均以<C-x>
开头,请参阅:h ins-completion
。
最好使用一些第三方插件(如jedi-vim或klen / python-mode)来获得python,因为它们更聪明。请注意,至少klen / python-mode将不重新定义<C-p>
。他们通过设置'omnifunc'
option重新定义<C-x><C-o>
。
答案 1 :(得分:0)
如果没有任何附加模块,vim的自动完成功能只会搜索当前文件中是否存在您已开始输入的字符串,无论它是否有意义。如果您使用tags
文件,通过ctags
或其他文件,则可以在各种文件中使用字符串,而不仅仅是当前缓冲区。