Python实现Tab自动补全和历史命令管理的方法
2019/7/13 21:34:00
本文主要是介绍Python实现Tab自动补全和历史命令管理的方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本文实例讲述了Python实现Tab自动补全和历史命令管理的方法。分享给大家供大家参考。具体分析如下:
Python的startup文件,即环境变量 PYTHONSTARTUP 对应的文件
1. 为readline添加tab键自动补全的功能
2. 像Shell一样管理历史命令
代码如下:
import readline
import atexit
import os
# http://stackoverflow.com/questions/7116038/python-tab-completion-mac-osx-10-7-lion
if 'libedit' in readline.__doc__:
readline.parse_and_bind('bind ^I rl_complete')
else:
readline.parse_and_bind('tab: complete')
histfile = os.path.join(os.environ['HOME'], '.pyhist')
try:
readline.read_history_file(histfile)
except IOError:
pass
atexit.register(readline.write_history_file, histfile)
del readline, rlcompleter, histfile, os
希望本文所述对大家的Python程序设计有所帮助。
一。这个方法可以修改shell命令行的自动补全
1.获取python目录【我使用的是64位ubuntu系统】
[~$]python Python 2.7.3 (default, Apr 10 2013, 06:20:15) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path ['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/python2.7/dist-packages/gst-0.10', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client', '/usr/lib/python2.7/dist-packages/ubuntuone-client', '/usr/lib/python2.7/dist-packages/ubuntuone-control-panel', '/usr/lib/python2.7/dist-packages/ubuntuone-couch', '/usr/lib/python2.7/dist-packages/ubuntuone-installer', '/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol'] >>>
从上面看出python在我电脑上的路径是 /usr/lib/python2.7
2.切换至该目录写个startup.py的脚本,脚本目录就是处理python中<tab>事件,脚本内容如下
#!/usr/bin/python # python startup file import sys import readline import rlcompleter import atexit import os # tab completion readline.parse_and_bind('tab: complete') # history file histfile = 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.切换至自己主目录
[/usr/lib/python2.7$]cd
[~$]vi .bashrc
4. 增加环境变量
#for python
export PYTHONSTARTUP=/usr/lib/python2.7/startup.py
5.配置环境变量生效
[~$]source .bashrc
PYTHONSTARTUP是什么东西呢?
If this is the name of a readable file, the Python commands in that file are executed before the first prompt
is displayed in interactive mode. The file is executed in the same name space where interactive commands are
executed so that objects defined or imported in it can be used without qualification in the interactive session.
You can also change the prompts sys.ps1 and sys.ps2 in this file.
二。这个方法能在VIM中自动补全
1. 下载插件:
下载地址://www.zyiz.net/softs/305586.html
2.拷贝致相应的目录
unzip pydiction-1.2.1.zip
cp python_pydiction.vim /usr/share/vim/vim73/ftplugin
mkdir /usr/share/vim/vim73/pydiction
cp complete-dict /usr/share/vim/vim73/pydiction/
cp pydiction.py /usr/share/vim/vim73/pydiction/
3.修改vim配置文件
let g:pydiction_location = '/usr/share/vim/vim73/pydiction/complete-dict'
let g:pydiction_menu_height = 20
OK,测试是否生效吧
这篇关于Python实现Tab自动补全和历史命令管理的方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享
- 2024-12-19Python资料:新手入门的全面指南
- 2024-12-19Python股票自动化交易实战入门教程
- 2024-12-19Python股票自动化交易入门教程
- 2024-12-18Python量化入门教程:轻松掌握量化交易基础知识