给Python IDLE加上自动补全和历史功能


Posted in Python onNovember 30, 2014

许多时候,我们使用Python,并不用写一个程序,一些不复杂的任务,我更喜欢在 IDLE(也就是交互式提示模式)下输入几行代码完成。然而,在这个模式下编辑代码,也有不够便利的地方,最主要的就是,不能用Tab自动补全,不能记忆 上一次输入的命令(没办法,谁让我们在Shell下习惯了呢)。
这时候,我们可以直接使用Python启动脚本,解决这个问题。

启动脚本的程序非常简单,这里不多说明,只给出代码:

import readline
import rlcompleter
import atexit
import os
# tab autocomplete
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

完成之后,我们把它保存为.pythonstartup,存放在自己的目录下(譬如/home/yurii),再将PYTHONSTARTUP变量指向刚才放的地址,就可以了。最省事的办法是在bashrc中添加这样一行:

export PYTHONSTARTUP=/home/yurii/.pythonstartup

这样,不但增加了tab的自动补全功能,而且重新启动IDLE时,通过上下键,还能翻到上次输入的命令,非常方便。

Python 相关文章推荐
Python深入学习之特殊方法与多范式
Aug 31 Python
python中sets模块的用法实例
Sep 30 Python
跟老齐学Python之通过Python连接数据库
Oct 28 Python
利用Django框架中select_related和prefetch_related函数对数据库查询优化
Apr 01 Python
浅谈python中的变量默认是什么类型
Sep 11 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
May 29 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
Oct 22 Python
python 将list转成字符串,中间用符号分隔的方法
Oct 23 Python
python爬虫 基于requests模块的get请求实现详解
Aug 20 Python
python英语单词测试小程序代码实例
Sep 09 Python
Django解决frame拒绝问题的方法
Dec 18 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
Jan 27 Python
让 python 命令行也可以自动补全
Nov 30 #Python
Python lambda和Python def区别分析
Nov 30 #Python
Python内置函数之filter map reduce介绍
Nov 30 #Python
Python Queue模块详解
Nov 30 #Python
Python socket C/S结构的聊天室应用实现
Nov 30 #Python
Python open()文件处理使用介绍
Nov 30 #Python
Python fileinput模块使用介绍
Nov 30 #Python
You might like
PHP常用开发函数解析之数组篇[未完结]
2012/07/30 PHP
php伪静态之APACHE篇
2014/06/02 PHP
laravel数据库查询结果自动转数组修改实例
2021/02/27 PHP
来自chinaz的ajax获取评论代码
2008/05/03 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
2010/04/02 Javascript
flexigrid 类似ext grid的JS表格代码
2010/07/17 Javascript
ajax 同步请求和异步请求的差异分析
2011/07/04 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
Javascript call和apply区别及使用方法
2013/11/14 Javascript
jquery简单实现图片切换效果的方法
2015/05/12 Javascript
基于jquery实现放大镜效果
2015/08/17 Javascript
jquery插件pagination实现无刷新ajax分页
2015/09/30 Javascript
jQuery获取及设置表单input各种类型值的方法小结
2016/05/24 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
2017/05/10 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
2017/06/06 Javascript
使用jQuery实现购物车结算功能
2017/08/15 jQuery
详解vue.js下引入百度地图jsApi的两种方法
2018/07/27 Javascript
使用webpack构建应用的方法步骤
2019/03/04 Javascript
Python中模块string.py详解
2017/03/12 Python
pandas 空的dataframe 插入列名的示例
2018/10/30 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
python多继承(钻石继承)问题和解决方法简单示例
2019/10/21 Python
Python统计时间内的并发数代码实例
2019/12/28 Python
Brookstone美国官网:独特新奇产品
2017/03/04 全球购物
Lampenwelt德国:欧洲领先的灯具和照明在线商店
2018/08/05 全球购物
泰国的头号网上婴儿用品店:Motherhood.co.th
2019/04/09 全球购物
日语专业个人的求职信
2013/12/03 职场文书
爱之链教学反思
2014/04/30 职场文书
演讲比赛策划方案
2014/06/11 职场文书
2014年应急管理工作总结
2014/11/26 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
交流会主持词
2015/07/02 职场文书
2016中秋节问候语
2015/11/11 职场文书
小学体育跳绳课教学反思
2016/02/16 职场文书