给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抓taobao图片爬虫
Oct 26 Python
Python中使用装饰器和元编程实现结构体类实例
Jan 28 Python
Python删除空文件和空文件夹的方法
Jul 14 Python
详解在Python程序中解析并修改XML内容的方法
Nov 16 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
Jul 02 Python
Python3如何解决字符编码问题详解
Apr 23 Python
python爬虫实战之最简单的网页爬虫教程
Aug 13 Python
利用python解决mysql视图导入导出依赖的问题
Dec 17 Python
Python中logging实例讲解
Jan 17 Python
Python 学习教程之networkx
Apr 15 Python
Python对ElasticSearch获取数据及操作
Apr 24 Python
python安装cx_Oracle和wxPython的方法
Sep 14 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 将bmp图片转为jpg等其他任意格式的图片
2009/06/21 PHP
深入PHP内存相关的功能特性详解
2013/06/08 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
PHP实现获取图片颜色值的方法
2014/07/11 PHP
制作安全性高的PHP网站的几个实用要点
2014/12/30 PHP
PHP实现简单的新闻发布系统实例
2015/07/28 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
PHP 出现 http500 错误的解决方法
2021/03/09 PHP
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
javascript下查找父节点的简单方法
2007/08/13 Javascript
JS判断当前日期是否大于某个日期的实现代码
2012/09/02 Javascript
js控制不同的时间段显示不同的css样式的实例代码
2013/11/04 Javascript
JS检测输入字符是否包含非法字符的示例代码
2014/02/11 Javascript
使用JS取得焦点(focus)元素代码
2014/03/22 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
js实现select二级联动下拉菜单
2020/04/17 Javascript
老生常谈js中的MVC
2017/07/25 Javascript
浅谈Vue Element中Select下拉框选取值的问题
2018/03/01 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
微信小程序点击保存图片到本机功能
2019/12/13 Javascript
[01:00] DOTA2英雄背景故事第五期之重力引力法则谜团
2020/07/16 DOTA
Python冒泡排序注意要点实例详解
2016/09/09 Python
11月编程语言排行榜 Python逆袭C#上升到第4
2017/11/15 Python
python 通过类中一个方法获取另一个方法变量的实例
2019/01/22 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
Python内存管理实例分析
2019/07/10 Python
python3.8 微信发送服务器监控报警消息代码实现
2019/11/05 Python
车工岗位职责
2013/11/26 职场文书
自我评价中英文语句
2013/11/30 职场文书
中学教师培训制度
2014/01/31 职场文书
升旗仪式主持词
2014/03/19 职场文书
应届生求职信范文
2014/05/26 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS
JS数组去重详情
2021/11/07 Javascript
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS