linux中,python命令行&vim自动补全
linux中,交互命令行中python无法进行自动补全,vim中也无法进行自动补全。
今天,试着解决该问题。
第一部分:交互式命令行中python代码自动补全
-
交互式命令行可通过启动文件来配置。当它启动时会查找环境变量PYTHONSTARTUP并且执行该变量中所指定文件里的程序代码。这里我们在用户主目录下定义一个启动脚本:.pythonstartup
-
#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
-
在./bashrc中添加环境变量:
export PYTHONSTARTUP = ~/.pythonstartup
重载环境变量:
. ./bashrc
-
补充:在pbp.script包中已经提供了python启动脚本,名为pythonstartup.py。从http://pypi.python.org/pypi/pbp.scripts中下载该文件,然后将文件名改为.pythonstartup即可。
END
第二部分:vim中python代码自动补全
-
首先在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 使用说明
-
将after文件夹复制到~/.vim/中;
在~/.vim/中创建文件夹pydiction;
将 complete-dict和pydiction.py复制到~/.vim/pydiction/中
-
在你的~/.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