VIM python 自动补全插件:pydiction

1. VIM python 自动补全插件:pydiction

这是一个相当不错的 Python 代码自动完成的脚本。

可以实现下面python代码的自动补全:

  1. 简单 python关键词补全
  2. python 函数补全带括号
  3. python 模块补全
  4. python 模块内函数,变量补全
  5. from module import sub-module 补全

pydiction 插件安装

pydiction 1.0 之后版本安装配置

适用VIM7之后的版本。

1.python_pydiction.vim

将文件 python_pydiction.vim 放到 ~/.vim/after/ftplugin/ 路径下,如果这个路径不存在,你可以自己创建这个文件夹结构。(Windows下面的话放在目录类似的结构中)

2.complete-dict

将complete-dict文件放到你自己的某个路径下,后面的配置会用到这个文件,这个文件就是记录所有的python关键词。

我将这个文件放到 ~/.vim/tools/pydiction/complete-dict

3. 配置 .vimrc 文件

在 ~/.vimrc 文件中添加如下配置

"pydiction 1.2 python
 auto complete

filetype plugin on

let g:pydiction_location = '~/.vim
/tools/pydiction/complete-dict'

"defalut g:pydiction_menu_height == 15

"let g:pydiction_menu_height = 20 



pydiction 自动补全插件使用

pydiction 1.2 版本在VIM中直接用 <Tab> 键就可以实现自动补全。

vim中键入 os.pa<Tab> 后出现的自动补全界面

 

pydiction 插件下载

Vim初探(四)中介绍了Vim的插件技术,本节将利用这些技术打造一个Python IDE。

1.文法高亮

  为了能在Vim中支持Python文法需要用到插件python.vim,该插件默认位于<Vim安装目录>/<$VIMRUNTIME>/syntax/下,如果你在该路径下没有找到这个插件,需要到python.vim : Enhanced version of the python syntax highlighting script下载。然后为了能让Vim识别Python文法需要在vimrc中添加:

   
   
set filetype = python au BufNewFile,BufRead * .py, * .pyw setf python
复制代码

2.缩进

  在vimrc中添加如下缩进相关的代码:

   
   
set autoindent " same level indent set smartindent " next level indent set expandtab set tabstop = 4 set shiftwidth = 4 set softtabstop = 4
复制代码

3.项目视图

  像Visual Studio或Eclipse之类的IDE都会提供项目视图(位于左侧或右侧),程序员利用该视图在文件间或类间跳转。利用Ctags和插件Tasklist可以在vim中实现此功能。

  • 首先下载Exuberant Ctags
  • 然后解压Ctags,并进入解压后的目录,利用如下命令编译安装Ctags:
   
   
. / configure && sudo make install
  • 通过这种方式,Ctags被安装在/usr/local/bin下。接下来在vimrc中添加如下命令告诉Vim Ctags的安装路径:
   
   
let Tlist_Ctags_Cmd = ' /usr/local/bin/ctags '
  • 接着安装Tasklist插件:下载TaskList.vim,然后把它放入plugin目录下
  • 最后使用命令:TlistToggle打开taglist窗口,下图展示了该窗口。

4.MiniBufExplorer

  在Visual Studio或Eclipse中你打开的缓存会以tab的形式列在窗口的顶端或底部,在Vim中插件MiniBufExplorer来实现此功能。下载minibufexpl.vim并将其放在plugin目录下。接着在vimrc中添加如下命令:

   
   
let g:miniBufExplMapWindowNavVim = 1 let g:miniBufExplMapWindowNavArrows = 1 let g:miniBufExplMapCTabSwitchBufs = 1 let g:miniBufExplModSelTarget = 1
复制代码

  下图展示了MiniBufExplorer的使用效果:

5.Omnicompletion

  Vim7中添加了对文法提示和自动完成的支持,对于python来说需下载pythoncomplete.vim并将其放在<Vim安装目录>/<$VIMRUNTIME>/autoload/目录下,接着在vimrc中添加如下命令:

   
   
filetype plugin on set ofu = syntaxcomplete # Complete autocmd FileType python set omnifunc = pythoncomplete # Complete autocmd FileType python runtime! autoload / pythoncomplete.vim
复制代码

  最后在编写代码时通过ctrl-x ctrl-o来打开文法提示上下文菜单,如下图所示:

参考文献

1.http://www.swaroopch.com/notes/Vim

2.http://blog.dispatched.ch/2009/05/24/vim-as-python-ide/

3.http://www.phacks.net/macvim-code-completion-syntax-highlighting-for-python-pyqt4-twisted-on-mac-osx-snow-leopard/

4.http://vim.wikia.com/wiki/Omni_completion


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值