给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 相关文章推荐
在Django的视图(View)外使用Session的方法
Jul 23 Python
Python实现短网址ShortUrl的Hash运算实例讲解
Aug 10 Python
Python使用requests发送POST请求实例代码
Jan 25 Python
Python通过调用mysql存储过程实现更新数据功能示例
Apr 03 Python
Python脚本完成post接口测试的实例
Dec 17 Python
Python通用循环的构造方法实例分析
Dec 19 Python
python实现微信定时每天和女友发送消息
Apr 29 Python
opencv3/C++ 平面对象识别&透视变换方式
Dec 11 Python
基于python 将列表作为参数传入函数时的测试与理解
Jun 05 Python
浅谈Python中的继承
Jun 19 Python
Django-silk性能测试工具安装及使用解析
Nov 28 Python
python使用pywinauto驱动微信客户端实现公众号爬虫
May 19 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
解析ajax事件的调用顺序
2013/06/17 PHP
Symfony控制层深入详解
2016/03/17 PHP
解决jquery中美元符号命名冲突问题
2014/01/08 Javascript
吐槽一下我所了解的Node.js
2014/10/08 Javascript
轻松创建nodejs服务器(10):处理POST请求
2014/12/18 NodeJs
详解Bootstrap插件
2016/04/25 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
jQuery stop()用法实例详解
2016/07/28 Javascript
微信小程序图表插件(wx-charts)实例代码
2017/01/17 Javascript
js实现图片轮播效果学习笔记
2017/07/26 Javascript
Bootstrap一款超好用的前端框架
2017/09/25 Javascript
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
Vue.js项目中管理每个页面的头部标签的两种方法
2018/06/25 Javascript
Vue实现双向绑定的原理以及响应式数据的方法
2018/07/02 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
2019/05/26 Javascript
vue实现弹幕功能
2019/10/25 Javascript
npx create-react-app xxx创建项目报错的解决办法
2020/02/17 Javascript
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
Python实现批量把SVG格式转成png、pdf格式的代码分享
2014/08/21 Python
win10系统中安装scrapy-1.1
2016/07/03 Python
win与linux系统中python requests 安装
2016/12/04 Python
使用Python对SQLite数据库操作
2017/04/06 Python
Python中turtle作图示例
2017/11/15 Python
python数字图像处理之高级滤波代码详解
2017/11/23 Python
python中正则表达式的使用方法
2018/02/25 Python
Python socket实现的简单通信功能示例
2018/08/21 Python
python实现Dijkstra算法的最短路径问题
2019/06/21 Python
Python求均值,方差,标准差的实例
2019/06/29 Python
django跳转页面传参的实现
2020/09/17 Python
环保倡议书300字
2014/05/15 职场文书
英语教师求职信
2014/06/16 职场文书
上市公司董事长岗位职责
2015/04/16 职场文书
中学综治宣传月活动总结
2015/05/07 职场文书
Navicat for MySQL的使用教程详解
2021/05/27 MySQL