给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升级提示Tkinter模块找不到的解决方法
Aug 22 Python
python里使用正则的findall函数的实例详解
Oct 19 Python
python+ffmpeg视频并发直播压力测试
Mar 06 Python
详解基于django实现的webssh简单例子
Jul 17 Python
Python实现基于POS算法的区块链
Aug 07 Python
FFT快速傅里叶变换的python实现过程解析
Oct 21 Python
Django项目中使用JWT的实现代码
Nov 04 Python
python matplotlib拟合直线的实现
Nov 19 Python
python将邻接矩阵输出成图的实现
Nov 21 Python
pytorch::Dataloader中的迭代器和生成器应用详解
Jan 03 Python
Python实现Canny及Hough算法代码实例解析
Aug 06 Python
详解Python爬虫爬取博客园问题列表所有的问题
Jan 18 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 判断变量类型实现代码
2009/10/23 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
php实现用已经过去多长时间的方式显示时间
2015/06/05 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
Code:loadScript( )加载js的功能函数
2007/02/02 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
window.open不被拦截的实现代码
2012/08/22 Javascript
为什么要在引入的css或者js文件后面加参数的详细讲解
2013/05/03 Javascript
用Javascript来生成ftp脚本的小例子
2013/07/03 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
Css3制作变形与动画效果
2015/07/24 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
2016/05/05 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
JS实现预加载视频音频/视频获取截图(返回canvas截图)
2017/10/09 Javascript
微信小程序template模板实例详解
2017/10/27 Javascript
vue中父子组件注意事项,传值及slot应用技巧
2018/05/09 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
Vue实现简易翻页效果源码分享
2018/11/08 Javascript
如何阻止移动端浏览器点击图片浏览
2020/08/29 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
Vue组件简易模拟实现购物车
2020/12/21 Vue.js
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
教你用Python写安卓游戏外挂
2018/01/11 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
Python PIL图片添加字体的例子
2019/08/22 Python
Python爬取腾讯视频评论的思路详解
2019/12/19 Python
flask项目集成swagger的方法
2020/12/09 Python
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
公司同意接收函
2014/01/13 职场文书
刘胡兰的英雄事迹材料
2014/02/11 职场文书
行政助理岗位职责范本
2015/04/11 职场文书
会议主持人开场白台词
2015/05/28 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书