YouCompleteMe(YCM)和jedi-vim是两个vim插件,它们提供自动完成功能,并且都使用jedi作为Python的底层实现。然而,同时使用这两个插件非常实用,因为jedi-vim除了提供文档之外还提供一些有用的特性,例如“跳转到定义”和“查看文档字符串”,而YouCompleteMe适用于其他语言。
由于两个插件都提供Python自动完成功能,是否需要进行特殊配置以防止两个插件冲突?或者说,jedi-vim的自动完成器是否会在Python中覆盖YouCompleteMe?
YouCompleteMe(YCM)和jedi-vim是两个vim插件,它们提供自动完成功能,并且都使用jedi作为Python的底层实现。然而,同时使用这两个插件非常实用,因为jedi-vim除了提供文档之外还提供一些有用的特性,例如“跳转到定义”和“查看文档字符串”,而YouCompleteMe适用于其他语言。
由于两个插件都提供Python自动完成功能,是否需要进行特殊配置以防止两个插件冲突?或者说,jedi-vim的自动完成器是否会在Python中覆盖YouCompleteMe?
最明显的冲突是不知道你是否在使用YCM或Jedi进行自动完成。在这种情况下,最简单的方法是在.vimrc
中加入一行来禁用Jedi的自动完成,并在所有地方使用YCM的出色(对于Python基于Jedi的)自动完成功能。
let g:jedi#completions_enabled = 0
按键映射还不错。这两个插件都映射了 <leader>d
(其中 <leader>
默认为 \
),但这并不重要,Jedi 只会在 Python 文件中覆盖 \d
,而该特定的 YCM 功能在 Python 中不受支持。