• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python实现Tab自动补全和历史命令管理的方法

python 搞代码 4年前 (2022-01-09) 23次浏览 已收录 0个评论

本文实例讲述了Python实现Tab自动补全和历史命令管理的方法。分享给大家供大家参考。具体分析如下:

Python的startup文件,即环境变量 PYTHONSTARTUP 对应的文件

1. 为readline添加tab键自动补全的功能

2. 像Shell一样管理历史命令

代码如下:

import rlcompleter<br />import readline<br />import atexit<br />import os<br /># http://stackoverflow.com/questions/7116038/python-tab-completion-mac-osx-10-7-lion<br />if 'libedit' in readline.__doc__:<br />    readline.parse_and_bind('bind ^I rl_complete')<br />else:<br />    readline.parse_and_bind('tab: complete')<br />histfile = os.path.join(os.environ['HOME'], '.pyhist')<br />try:<br />    readline.read_history_file(histfile)<br />except IOError:<br />    pass<br />atexit.register(readline.write_history_file, histfile)<br />del readline, rlcompleter, histfile, os

希望本文所述对大家的Python程序设计有所帮助。

一。这个方法可以修改shell命令行的自动补全
1.获取python目录【我使用的是64位ubuntu系统】

[~$]pythonPython 2.7.3 (default, Apr 10 2013, 06:20:15) [GCC 4.6.3] on linux2Type "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中事件,脚本内容如下

#!/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.切换至自己主目录

<br />[/usr/lib/python2.7$]cd <br />[~$]vi .bashrc <br />

4. 增加环境变量

<br />#for python<br />export PYTHONSTARTUP=/usr/lib/python2.7/startup.py<br />

5.配置环境变量生效

<br />[~$]source .bashrc <br />

PYTHONSTARTUP是什么东西呢?

<br />If this is the name of a readable file, the Python commands in that file are executed before the first pro<span style="color:transparent">来1源gaodai#ma#com搞*代#码1网</span>mpt <br />is displayed in interactive mode.  The file is executed in the same name space where interactive commands are<br />executed so that  objects defined  or  imported in it can be used without qualification in the interactive session.  <br />You can also change the prompts sys.ps1 and sys.ps2 in this file.<br />

二。这个方法能在VIM中自动补全

1. 下载插件:
下载地址:http://www.gaodaima.com/softs/305586.html

2.拷贝致相应的目录

<br />unzip  pydiction-1.2.1.zip<br />cp python_pydiction.vim  /usr/share/vim/vim73/ftplugin<br />mkdir  /usr/share/vim/vim73/pydiction<br />cp complete-dict  /usr/share/vim/vim73/pydiction/<br />cp pydiction.py  /usr/share/vim/vim73/pydiction/<br />

3.修改vim配置文件

<br /> let g:pydiction_location = '/usr/share/vim/vim73/pydiction/complete-dict'<br />let g:pydiction_menu_height = 20<br /> 

OK,测试是否生效吧


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python实现Tab自动补全和历史命令管理的方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址