给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中os和shutil模块实用方法集锦
May 13 Python
跟老齐学Python之玩转字符串(2)
Sep 14 Python
python每隔N秒运行指定函数的方法
Mar 16 Python
在服务器端实现无间断部署Python应用的教程
Apr 16 Python
分析用Python脚本关闭文件操作的机制
Jun 28 Python
python3 unicode列表转换为中文的实例
Oct 26 Python
浅谈python在提示符下使用open打开文件失败的原因及解决方法
Nov 30 Python
pytorch模型预测结果与ndarray互转方式
Jan 15 Python
使用Python实现牛顿法求极值
Feb 10 Python
Python通过队列来实现进程间通信的示例
Oct 14 Python
AI:如何训练机器学习的模型
Apr 16 Python
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
Jun 21 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
基于mysql的论坛(4)
2006/10/09 PHP
PHP多进程编程实例详解
2017/07/19 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
2010/09/28 Javascript
jQuery获取浏览器中的分辨率实现代码
2013/04/23 Javascript
jQuery 中国省市两级联动选择附图
2014/05/14 Javascript
JS的location.href跳出框架打开新页面的方法
2014/09/04 Javascript
JS解析XML实例分析
2015/01/30 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
jQuery获取this当前对象子元素对象的方法
2016/11/29 Javascript
js实现五星评价功能
2017/03/08 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
二维码图片生成器QRCode.js简单介绍
2017/08/18 Javascript
vue弹窗消息组件的使用方法
2020/09/24 Javascript
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
[01:14:05]《加油DOTA》第四期
2014/08/25 DOTA
python 读写文件,按行修改文件的方法
2018/07/12 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
python调用摄像头拍摄数据集
2019/06/01 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
Python hashlib模块实例使用详解
2019/12/24 Python
Pandas缺失值2种处理方式代码实例
2020/06/13 Python
Python csv文件记录流程代码解析
2020/07/16 Python
Python Selenium XPath根据文本内容查找元素的方法
2020/12/07 Python
如何使用html5与css3完成google涂鸦动画
2012/12/16 HTML / CSS
科室工作的个人自我评价
2013/10/30 职场文书
公司财务总监岗位职责
2013/12/14 职场文书
茶叶店创业计划书范文
2014/01/19 职场文书
应届生自荐信范文
2014/02/21 职场文书
政府采购方案
2014/06/12 职场文书
中国在我心中演讲稿
2014/09/13 职场文书
八项规定个人对照检查材料思想汇报
2014/09/25 职场文书
上诉状格式
2015/05/23 职场文书
Java Socket实现Redis客户端的详细说明
2021/05/26 Redis