• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python实现Tab自动补全和历史命令管理的方法

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

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python tab,python split tab,python linux tab,python tab补全,python tab键等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了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</div>

希望本文所述对大家的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']
>>> 
</div>

从上面看出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
</div>

3.切换至自己主目录

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

4. 增加环境变量

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

5.配置环境变量生效

[~$]source .bashrc
</div>

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.
</div>

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

    1. 下载插件:
       下载地址:http://www.jb51.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/
</div>

 3.修改vim配置文件

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

 OK,测试是否生效吧

</div>

您可能想查找下面的文章:

  • Python使用tablib生成excel文件的简单实现方法
  • Python实现Tab自动补全和历史命令管理的方法
  • Python实现的tab文件操作类分享
  • Python实现的tab文件操作类分享

相关文章

  • Python内置函数OCT详解
  • Django框架中方法的访问和查找
  • 深入理解Python中的元类(metaclass)
  • Python中的字典遍历备忘
  • Python动态加载模块的3种方法
  • Python网页解析利器BeautifulSoup安装使用介绍
  • 在Python中利用Pandas库处理大数据的简单介绍
  • 使用python分析git log日志示例
  • Python使用multiprocessing创建进程的方法
  • Python中列表(list)操作方法汇总

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python中使用copy模块实现列表(list)拷贝
    • 十个Python程序员易犯的错误
    • Python获取单个程序CPU使用情况趋势图
    • Python实现LRU算法的2种方法
    • Django imgareaselect手动剪切头像实现方法
    • python中Genarator函数用法分析
    • Python字符串替换实例分析
    • python下os模块强大的重命名方法renames详解
    • python实现unicode转中文及转换默认编码的方法
    • Windows下安装python MySQLdb遇到的问题及解决方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有