给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学习笔记_数据排序方法
May 22 Python
python中map()与zip()操作方法
Feb 27 Python
Python max内置函数详细介绍
Nov 17 Python
使用Python中的tkinter模块作图的方法
Feb 07 Python
python Matplotlib画图之调整字体大小的示例
Nov 20 Python
Centos部署django服务nginx+uwsgi的方法
Jan 02 Python
python 格式化输出百分号的方法
Jan 20 Python
Python绘图Matplotlib之坐标轴及刻度总结
Jun 28 Python
Python+OpenCV实现图像的全景拼接
Mar 05 Python
Python语法垃圾回收机制原理解析
Mar 25 Python
python爬虫多次请求超时的几种重试方法(6种)
Dec 01 Python
python绘制简单直方图(质量分布图)的方法
Apr 21 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
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
PHP中文字符串截断无乱码解决方法
2016/10/10 PHP
关于IE7 IE8弹出窗口顶上
2008/12/22 Javascript
javascript 打印页面代码
2009/03/24 Javascript
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
2015/07/30 Javascript
原生javascript实现解析XML文档与字符串
2016/03/01 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
解析Vue 2.5的Diff算法
2017/11/28 Javascript
Angular4学习教程之DOM属性绑定详解
2018/01/04 Javascript
微信小程序实现刷脸登录
2018/05/25 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
2018/09/18 Javascript
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
vue-cli3使用mock数据的方法分析
2020/03/16 Javascript
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
Pandas替换及部分替换(replace)实现流程详解
2020/10/12 Python
CSS3实现缺角矩形,折角矩形以及缺角边框
2019/12/20 HTML / CSS
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
欧姆龙医疗保健与医疗产品:Omron Healthcare
2020/02/10 全球购物
职工运动会邀请函
2014/02/02 职场文书
函授毕业个人自我评价
2014/02/20 职场文书
建设工地安全标语
2014/06/07 职场文书
危货运输企业安全生产责任书
2014/07/28 职场文书
物价局领导班子四风问题整改措施
2014/10/26 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书
2014年法院工作总结
2014/11/24 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
Apache压力测试工具的安装使用
2021/03/31 Servers
python实现简单的聊天小程序
2021/07/07 Python
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏
JavaScript模拟实现网易云轮播效果
2022/04/04 Javascript
使用CSS实现六边形的图片效果
2022/08/05 HTML / CSS