给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实现抓取百度搜索结果页的网站标题信息
Jan 22 Python
python列出目录下指定文件与子目录的方法
Jul 03 Python
5种Python单例模式的实现方式
Jan 14 Python
Python利用带权重随机数解决抽奖和游戏爆装备问题
Jun 16 Python
Python模拟三级菜单效果
Sep 11 Python
python实现简单遗传算法
Mar 19 Python
详解Python3的TFTP文件传输
Jun 26 Python
Python 简单计算要求形状面积的实例
Jan 18 Python
tensorflow指定GPU与动态分配GPU memory设置
Feb 03 Python
pycharm 设置项目的根目录教程
Feb 12 Python
在 Pycharm 安装使用black的方法详解
Apr 02 Python
Django如何重置migration的几种情景
Feb 24 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
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
2014/05/15 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
jQuery右键菜单contextMenu使用实例
2011/09/28 Javascript
jquery form 加载数据示例
2014/04/21 Javascript
AngularJS初始化过程分析(引导程序)
2014/12/06 Javascript
如何使用jquery easyui创建标签组件
2015/11/18 Javascript
JavaScript+html5 canvas制作的圆中圆效果实例
2016/01/27 Javascript
快速掌握Node.js环境的安装与运行方法
2016/02/16 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
深入理解nodejs中Express的中间件
2017/05/19 NodeJs
Javascript实现的StopWatch功能示例
2017/06/13 Javascript
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
浅谈webpack对样式的处理
2018/01/05 Javascript
Vue 项目中遇到的跨域问题及解决方法(后台php)
2018/03/28 Javascript
如何通过shell脚本自动生成vue文件详解
2019/09/10 Javascript
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python通过ElementTree操作XML获取结点读取属性美化XML
2013/12/02 Python
Python单链表简单实现代码
2016/04/27 Python
Python多线程threading和multiprocessing模块实例解析
2018/01/29 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
Django项目使用ckeditor详解(不使用admin)
2019/12/17 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
2020/08/07 Python
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
写给老婆的检讨书
2014/02/21 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
幼儿园师德演讲稿
2014/05/06 职场文书
2014年作风建设工作总结
2014/10/29 职场文书
英文感谢信范文
2015/01/21 职场文书
创新创业项目计划书该怎样写?
2019/08/13 职场文书
Python如何导出导入所有依赖包详解
2021/06/08 Python
Python pyecharts绘制条形图详解
2022/04/02 Python
Mysql查询时间区间日期列表,不会由于数据表数据影响
2022/04/19 MySQL