给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 相关文章推荐
pygame学习笔记(5):游戏精灵
Apr 15 Python
Python中的条件判断语句与循环语句用法小结
Mar 21 Python
尝试用最短的Python代码来实现服务器和代理服务器
Jun 23 Python
Python_LDA实现方法详解
Oct 25 Python
PyQt5 在label显示的图片中绘制矩形的方法
Jun 17 Python
Python 最强编辑器详细使用指南(PyCharm )
Sep 16 Python
PyCharm 2019.3发布增加了新功能一览
Dec 08 Python
python 通过视频url获取视频的宽高方式
Dec 10 Python
Python判断字符串是否为空和null方法实例
Apr 26 Python
Django中FilePathField字段的用法
May 21 Python
Python实现小黑屋游戏的完整实例
Jan 06 Python
Python Django项目和应用的创建详解
Nov 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介绍篇
2010/10/26 PHP
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
2018/04/20 PHP
Open and Print a Word Document
2007/06/15 Javascript
一个JQuery写的点击上下滚动的小例子
2011/08/27 Javascript
window.addEventListener来解决让一个js事件执行多个函数
2012/12/26 Javascript
javascript控制Div层透明属性由浅变深由深变浅逐渐显示
2013/11/12 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
控制台报错object is not a function的解决方法
2014/08/24 Javascript
浅谈NodeJS中require路径问题
2015/05/07 NodeJs
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
详解JS中的attribute属性
2017/04/25 Javascript
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
简单实现vue中的依赖收集与响应的方法
2019/02/18 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
2019/09/10 Javascript
vue实现图片按比例缩放问题操作
2020/08/11 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
2020/10/22 Javascript
vant picker+popup 自定义三级联动案例
2020/11/04 Javascript
手把手教你如何编译打包video.js
2020/12/09 Javascript
微信小程序选择图片控件
2021/01/19 Javascript
[04:41]2014DOTA2国际邀请赛 Liquid顺利突围晋级正赛
2014/07/09 DOTA
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
python装饰器常见使用方法分析
2019/06/26 Python
Python循环实现n的全排列功能
2019/09/16 Python
keras导入weights方式
2020/06/12 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
python 如何实现遗传算法
2020/09/22 Python
KIKO MILANO英国官网:意大利知名化妆品和护肤品品牌
2017/09/25 全球购物
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
大学毕业感言50字
2014/02/07 职场文书
模具专业自荐信
2014/05/29 职场文书
单位委托书格式范本
2014/09/29 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书