给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中用format函数格式化字符串的用法
Apr 08 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
Jul 28 Python
Python3实现的字典、列表和json对象互转功能示例
May 22 Python
mac安装scrapy并创建项目的实例讲解
Jun 13 Python
Python动态导入模块的方法实例分析
Jun 28 Python
python使用Qt界面以及逻辑实现方法
Jul 10 Python
python实现两个一维列表合并成一个二维列表
Dec 02 Python
python3将变量写入SQL语句的实现方式
Mar 02 Python
python 绘制场景热力图的示例
Sep 23 Python
Python 生成短8位唯一id实战教程
Jan 13 Python
教你怎么用python selenium实现自动化测试
May 27 Python
Python字符串的转义字符
Apr 07 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
新52大事件
2020/03/03 欧美动漫
php缓存技术介绍
2006/11/25 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
Laravel框架Eloquent ORM删除数据操作示例
2019/12/03 PHP
JavaScript 创建对象
2009/07/17 Javascript
jquery关于图形报表的运用实现代码
2011/01/06 Javascript
新发现一个骗链接的方法(js读取cookies)
2012/01/11 Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
2012/04/14 Javascript
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
JQuery实现绚丽的横向下拉菜单
2013/12/19 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
Javascript循环删除数组中元素的几种方法示例
2017/05/18 Javascript
React SSR样式及SEO的实践
2018/10/22 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
[31:47]夜魇凡尔赛茶话会 第三期01:选手知多少
2021/03/11 DOTA
python开发之tkinter实现图形随鼠标移动的方法
2015/11/11 Python
python黑魔法之参数传递
2016/02/12 Python
Pycharm无法显示动态图片的解决方法
2018/10/28 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
Pycharm中import torch报错的快速解决方法
2020/03/05 Python
Django+python服务器部署与环境部署教程详解
2020/03/30 Python
Python基于正则表达式实现计算器功能
2020/07/13 Python
html5指南-6.如何创建离线web应用程序实现离线访问
2013/01/07 HTML / CSS
Gweniss格温妮丝女包官网:英国纯手工制造潮流包包品牌
2018/02/07 全球购物
英国户外玩具儿童游乐设备网站:TP Toys(蹦床、攀爬框架、秋千、滑梯和游戏屋)
2018/04/09 全球购物
美国手工艺品市场的领导者:Annie’s
2019/04/04 全球购物
数学专业毕业生自荐信
2013/11/10 职场文书
涉外经济法专业毕业生推荐信
2013/11/24 职场文书
建筑人员岗位职责
2013/12/25 职场文书
简单的大学生自我鉴定
2014/02/18 职场文书
幼儿园亲子活动总结
2014/04/26 职场文书
学校党员个人问题整改措施思想汇报
2014/10/08 职场文书
给老婆的检讨书
2015/01/27 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书