给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实现无证书加密解密实例
Oct 27 Python
Python中处理字符串之islower()方法的使用简介
May 19 Python
Python操作MongoDB详解及实例
May 18 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
Oct 29 Python
python 保存float类型的小数的位数方法
Oct 17 Python
Python利用matplotlib做图中图及次坐标轴的实例
Jul 08 Python
flask框架单元测试原理与用法实例分析
Jul 23 Python
使用Pytorch来拟合函数方式
Jan 14 Python
Python装饰器结合递归原理解析
Jul 02 Python
Pycharm快捷键配置详细整理
Oct 13 Python
Python中json.load()和json.loads()有哪些区别
Jun 07 Python
Python办公自动化之教你如何用Python将任意文件转为PDF格式
Jun 28 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作的文本留言本的例子(一)
2006/10/09 PHP
PHP 翻页 实例代码
2009/08/07 PHP
php shell超强免杀、减少体积工具实现代码
2012/10/16 PHP
19个Android常用工具类汇总
2014/12/30 PHP
PHP概率计算函数汇总
2015/09/13 PHP
php获取当前url地址的方法小结
2017/01/10 PHP
js的逻辑运算符 ||
2010/05/31 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
通过javascript获取iframe里的值示例代码
2013/06/24 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
jQuery实现点击图片翻页展示效果的方法
2015/02/16 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
2015/09/15 Javascript
javascript对象的创建和访问
2016/03/08 Javascript
详解JavaScript对象的深浅复制
2017/03/30 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
2018/02/12 jQuery
详解Vue取消eslint语法限制
2018/08/04 Javascript
Vue项目查看当前使用的elementUI版本的方法
2018/09/27 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
使用Python的Scrapy框架十分钟爬取美女图
2016/12/26 Python
Python读取文件内容为字符串的方法(多种方法详解)
2020/03/04 Python
python利用线程实现多任务
2020/09/18 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
Python页面加载的等待方式总结
2021/02/28 Python
html5.2 dialog简介详解
2018/02/27 HTML / CSS
台湾生鲜宅配:大口市集
2017/10/14 全球购物
巴西香水和化妆品购物网站:The Beauty Box
2019/09/03 全球购物
英国现代家具和照明购物网站:Heal’s
2019/10/30 全球购物
八一建军节活动方案
2014/02/10 职场文书
门卫岗位职责
2015/02/09 职场文书
酒店厨房管理制度
2015/08/06 职场文书
Java中多线程下载图片并压缩能提高效率吗
2021/07/01 Java/Android
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android
Java 获取Word中所有的插入和删除修订的方法
2022/04/06 Java/Android