给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环境下搭建属于自己的pip源的教程
May 05 Python
深入理解Python装饰器
Jul 27 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
Aug 08 Python
利用Python2下载单张图片与爬取网页图片实例代码
Dec 25 Python
python正则表达式面试题解答
Apr 28 Python
PyQt5每天必学之事件与信号
Apr 20 Python
对Python中for复合语句的使用示例讲解
Nov 01 Python
Python开发网站目录扫描器的实现
Feb 21 Python
15行Python代码实现网易云热门歌单实例教程
Mar 10 Python
Python 生成一个从0到n个数字的列表4种方法小结
Nov 28 Python
Python logging模块进行封装实现原理解析
Aug 07 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
Mar 01 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生成EAN_13标准条形码实例
2013/11/13 PHP
php获取json数据所有的节点路径
2015/05/17 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
js实现点击注册按钮开始读秒倒计时的小例子
2013/05/11 Javascript
form表单只提交数据而不进行页面跳转的解决方案
2013/09/18 Javascript
自己实现ajax封装示例分享
2014/04/01 Javascript
jquery实现公告翻滚效果
2015/02/27 Javascript
js数组去重的方法汇总
2015/07/29 Javascript
javascript弹出拖动窗口
2015/08/11 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
canvas绘图不清晰的解决方案
2017/02/28 Javascript
深入理解nodejs中Express的中间件
2017/05/19 NodeJs
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
2017/08/18 Javascript
bootstrap响应式工具使用详解
2017/11/29 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
[03:04]DOTA2超级联赛专访ZSMJ “莫名其妙”的逆袭
2013/05/23 DOTA
Python的lambda匿名函数的简单介绍
2013/04/25 Python
Python3搜索及替换文件中文本的方法
2015/05/22 Python
Python入门_浅谈for循环、while循环
2017/05/16 Python
Python2与python3中 for 循环语句基础与实例分析
2017/11/20 Python
Python编程求解二叉树中和为某一值的路径代码示例
2018/01/04 Python
解决tensorflow模型参数保存和加载的问题
2018/07/26 Python
python使用for...else跳出双层嵌套循环的方法实例
2020/05/17 Python
Python Matplotlib绘图基础知识代码解析
2020/08/31 Python
python之语音识别speech模块
2020/09/09 Python
详解css3 mask遮罩实现一些特效
2018/10/24 HTML / CSS
Why we need EJB
2016/10/20 面试题
公司车辆管理制度
2015/08/04 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书
文案策划岗位个人自我评价(范文)
2019/08/08 职场文书