jedi是一个用于Python自动补齐和静态分析的开源库。jedi-vim是jedi作者开源的一个基于jedi库实现的Vim插件,提供了Vim下Python代码优秀的自动补全能力,在github上拥有近4k的star。

Vim教程网介绍的YouCompleteMe插件实际上也是使用jedi-vim来实现Python代码自动补全。

依赖于Jedi库,jedi-vim插件几乎支持了Python的所有语法特性,官方文档上列出的jedi-vim功能包括:

  • Builtins
  • Multiple returns or yields
  • Tuple assignments/array indexing/dictionary indexing
  • with-statement/exception handling
  • *args and **kwargs
  • Decorators, lambdas, closures
  • Generators, iterators
  • Some descriptors: property/staticmethod/classmethod
  • Some magic methods: __call__, __iter__, __next__, __get__,
    __getitem__, __init__
  • list.append(), set.add(), list.extend(), etc.
  • (Nested) list comprehensions and ternary expressions
  • Relative imports
  • getattr()/__getattr__/__getattribute__
  • Function annotations (py3k feature, are being ignored at the moment, but are
    parsed)
  • Class decorators (py3k feature, are being ignored at the moment, but are
    parsed)
  • Simple/usual sys.path modifications
  • isinstance checks for if/while/assert case, that doesn’t work with
    Jedi
  • And more…

除了Python代码自动补齐,jedi-vim插件还能实时展示对应函数的文档(Pydoc),可以说是一个功能非常强大的Vim插件。

一、jedi-vim安装

1.1 jedi-vim安装依赖

首先,jedi-vim插件需要当前Vim版本支持python,在终端输入 vim --version 可查看当前 Vim 的版本和编译信息。如下图可知,当前Vim并不支持 python2或python3,因此需要重新编译和安装。源码编译安装Vim的方法可参考vim源码编译安装方法

vim-version

其次,jedi-vim插件依赖python开源库jedi,可以使用pip安装:pip install jedi,也可以从github下载源码安装。

此外,jedi-vim作者建议Vim版本不应该低于7.3,因为7.3以上版本的Vim提供了conceal功能,这是jedi-vim插件的”函数形参自动补齐(function parameter completion)”功能所必需的。

1.2 jedi-vim安装方法

有多种方法安装jedi-vim插件,推荐使用Vim插件管理器vundle或(vim-plug)[https://vim.ink/vim-plug.html]安装。

如果采用从github下载源码的方式进行安装,执行下面的命令下载源代码后将下载的文件夹复制到 ~/.vim 即可完成安装。

1
2
git clone http://github.com/davidhalter/jedi-vim path/to/bundles/jedi-vim
git clone --recursive http://github.com/davidhalter/jedi-vim

如果使用vundle安装jedi-vim,只需在配置文件 ~/.vimrc 中的适当位置增加 Plugin 'davidhalter/jedi-vim' 后再在Vim的命令行模式下执行 :PluginInstall 即可完成安装。

如果使用vim-plug安装jedi-vim,只需在配置文件 ~/.vimrc 中的适当位置增加 Plug 'davidhalter/jedi-vim' 后再在Vim的命令行模式下执行 PlugInstall 即可。

二、jedi-vim插件使用方法

默认设置下,插入模式下按 <Ctrl-Space> 会触发jedi-vim的自动补齐,输入 . 时也会自动触发自动补齐提醒。

可以使用 let g:jedi#completions_command = "<C-N>" 设置 <Ctrl-n>(同时按下Ctrl和n键) 组合键用于触发jedi-vim的自动补齐功能。

除此之外,jedi-vim插件常用的功能还包括:

  • Goto assignments: <leader>g (typical goto function)
  • 跳转到定义: <leader>d
  • 显示Python文档(Pydoc): K
  • 重命名:<leader>r
  • 展示某个变量的使用方法:<leader>n (shows all the usages of a name)
  • 打开某个模块::Pyimport os (打开 os 模块)

<leader> 表示Vim的leader键,默认为 \

jedi-vim

推荐阅读jedi-vim官方文档获取更多相关介绍:https://github.com/davidhalter/jedi-vim/blob/master/doc/jedi-vim.txt

嗯,扫一扫就可以找到小女子我啦~