Jedi-vim和YouCompleteMe有冲突吗?

18

YouCompleteMe(YCM)和jedi-vim是两个vim插件,它们提供自动完成功能,并且都使用jedi作为Python的底层实现。然而,同时使用这两个插件非常实用,因为jedi-vim除了提供文档之外还提供一些有用的特性,例如“跳转到定义”和“查看文档字符串”,而YouCompleteMe适用于其他语言。

由于两个插件都提供Python自动完成功能,是否需要进行特殊配置以防止两个插件冲突?或者说,jedi-vim的自动完成器是否会在Python中覆盖YouCompleteMe?


2
没有同时使用这两个插件的实际经验,但是可以配置jedi-vim仅在按键时才执行操作,而不是自动执行。如果这两个插件的映射没有冲突,就不应该有问题。 - syntonym
9
作为一名绝地作者,他们可能会有些冲突。但是如果禁用某些功能(如自动完成),它就可以正常工作。所以@syntonym是正确的! - Dave Halter
YCM还提供了像“GoToDefinition”、“GoToDoc”等功能,因此您可以考虑完全删除“jedi-vim”。 - Tupteq
1个回答

15

最明显的冲突是不知道你是否在使用YCM或Jedi进行自动完成。在这种情况下,最简单的方法是在.vimrc中加入一行来禁用Jedi的自动完成,并在所有地方使用YCM的出色(对于Python基于Jedi的)自动完成功能。

let g:jedi#completions_enabled = 0

按键映射还不错。这两个插件都映射了 <leader>d (其中 <leader> 默认为 \),但这并不重要,Jedi 只会在 Python 文件中覆盖 \d,而该特定的 YCM 功能在 Python 中不受支持。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接