给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使用poplib模块和smtplib模块收发电子邮件的教程
Jul 02 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
Sep 06 Python
为什么Python中没有"a++"这种写法
Nov 27 Python
python版本五子棋的实现代码
Dec 11 Python
详解python selenium 爬取网易云音乐歌单名
Mar 28 Python
Python实现 版本号对比功能的实例代码
Apr 18 Python
Django自带日志 settings.py文件配置方法
Aug 30 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
Feb 17 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
Mar 30 Python
利用Vscode进行Python开发环境配置的步骤
Jun 22 Python
python-for x in range的用法(注意要点、细节)
May 10 Python
Python实现日志实时监测的示例详解
Apr 06 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
双料怀旧--SHARP GF515的维护、修理和简单调试
2021/03/02 无线电
Thinkphp中Create方法深入探究
2014/06/16 PHP
PHP正则验证Email的方法
2015/06/15 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
thinkphp5框架扩展redis类方法示例
2019/05/06 PHP
用js模拟JQuery的show与hide动画函数代码
2010/09/20 Javascript
克隆javascript对象的三个方法小结
2011/01/12 Javascript
使用隐藏的new来创建对象
2011/03/29 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
2013/11/03 Javascript
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
JavaScript的jQuery库插件的简要开发指南
2015/08/12 Javascript
每天一篇javascript学习小结(String对象)
2015/11/18 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
AngularJS 面试题集锦
2016/09/06 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
Express + Session 实现登录验证功能
2017/09/08 Javascript
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
JavaScript前后端JSON使用方法教程
2020/11/23 Javascript
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
Python实现京东秒杀功能代码
2019/05/16 Python
django的autoreload机制实现
2020/06/03 Python
Python tkinter界面实现历史天气查询的示例代码
2020/08/23 Python
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
爱尔兰橄榄球店:Irish Rugby Store
2019/12/05 全球购物
公务员培训心得体会
2013/12/28 职场文书
八一建军节活动方案
2014/02/10 职场文书
生日宴会策划方案
2014/06/03 职场文书
班级团队活动方案
2014/08/14 职场文书
中韩经贸翻译专业大学生职业生涯规划范文
2014/09/18 职场文书
普通党员对照检查材料
2014/09/24 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
幼儿园六一儿童节开幕词
2016/03/04 职场文书
分析SQL窗口函数之排名窗口函数
2022/04/21 Oracle