linux中,python命令行&vim自动补全

linux中,交互命令行中python无法进行自动补全,vim中也无法进行自动补全。

今天,试着解决该问题。

工具/原料

 
  • linux,python,vim
  • pydiction-1.2.3.zip

第一部分:交互式命令行中python代码自动补全

 
  1. 1

    交互式命令行可通过启动文件来配置。当它启动时会查找环境变量PYTHONSTARTUP并且执行该变量中所指定文件里的程序代码。这里我们在用户主目录下定义一个启动脚本:.pythonstartup

  2. 2

    #python startup file

     

    import readline

    import rlcompleter

    import atexit

    import os

     

    #tab completion

    readline.parse_and_bind('tab: complete')

     

    #history file

    history = os.path.join(os.environ['HOME'], '.pythonhistory')

    try:

        readline.read_history_file(histfile)

    except IOError:

        pass

    atexit.register(readline.write_history_file,histfile)

    del os,histfile,readline,rlcompleter

  3. 3

    在./bashrc中添加环境变量:

    export PYTHONSTARTUP = ~/.pythonstartup

    重载环境变量:

    .  ./bashrc

  4. 4

    补充:在pbp.script包中已经提供了python启动脚本,名为pythonstartup.py。从http://pypi.python.org/pypi/pbp.scripts中下载该文件,然后将文件名改为.pythonstartup即可。

    END

第二部分:vim中python代码自动补全

 
  1. 1

    首先在http://www.vim.org/scripts/script.php?script_id=850中下载pydiction-1.2.3.zip,解压会得到pydiction文件夹。

    pydiction中主要包括四个文件(或文件夹)

        1. after/ftplugin/python_pydiction.vim    该文件为 Vim 的 plugin 文件,实现 Python 文件的 TAB 补全功能。

        2. complete-dict     该文件为 Vim 的 dictionary 文件,其中包含 Python 关键字和模块结构等信息。是 plugin 进行补全时所查找的参考文件。

        3. pydiction.py     (可选)该文件是 Python script 文件,用于生成 dictionary 文件。可以通过执行该脚本添加更多的可 TAB 补全模块。 

        4. README     使用说明

  2. 2

    将after文件夹复制到~/.vim/中;

    在~/.vim/中创建文件夹pydiction;

    将 complete-dict和pydiction.py复制到~/.vim/pydiction/中

  3. 3

    在你的~/.vimrc 文件中增加下面的字段来启用 ftplugins:

         filetype plugin on

    之后确保设置 "g:pydiction_location" 指向你放置的 complete-dict 文件所在的全路径:

        let g:pydiction_location = '/data10/yllu/.vim/pydiction/complete-dict'

        let g:pydiction_menu_height = 20

    现在vim即可自动补全python脚本。

     

    注意:如果没有~/.vimrc,可以拷贝/etc/vimrc到用户主目录中并重命名为.vimrc

    END

注意事项

 
  • 如果你发现在 TAB 完成菜单中得到的结果并不是你想要的,可能的一种原因是你没有设置 Vim 忽略大小写。可以通过 ":set noic" 方式进行设置。
  • 如果是开新的python档案,尚未储存为 .py,VIM不知道目前编辑的是python,所以要在vim的命令列里面下这个指令 set FileType=python ,之后,按tab就会列出method和attribute了
posted @ 2017-07-01 10:28  Hanson666  阅读(507)  评论(0编辑  收藏  举报