给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 try异常处理机制
Jun 01 Python
浅谈终端直接执行py文件,不需要python命令
Jan 23 Python
python中关于for循环的碎碎念
Jun 30 Python
Python排序搜索基本算法之希尔排序实例分析
Dec 09 Python
神经网络(BP)算法Python实现及应用
Apr 16 Python
pycharm 将python文件打包为exe格式的方法
Jan 16 Python
解决os.path.isdir() 判断文件夹却返回false的问题
Nov 29 Python
Python常用编译器原理及特点解析
Mar 23 Python
详解Django配置JWT认证方式
May 09 Python
python中的split、rsplit、splitlines用法说明
Oct 23 Python
Python离线安装各种库及pip的方法
Nov 28 Python
python编程的核心知识点总结
Feb 08 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
CodeIgniter使用smtp服务发送html邮件的方法
2015/06/10 PHP
CodeIgniter自定义控制器MY_Controller用法分析
2016/01/20 PHP
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
nginx 设置多个站跨域
2021/03/09 Servers
jQuery 1.3 和 Validation 验证插件1.5.1
2009/07/09 Javascript
js 程序执行与顺序实现详解
2013/05/13 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
Bootstrap如何创建表单
2016/10/21 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
JavaScript无缝滚动效果的实例代码
2017/03/27 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
VUE预渲染及遇到的坑
2018/09/03 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
2018/10/31 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
解决layer弹出层msg的文字不显示的问题
2019/09/11 Javascript
JS实现碰撞检测效果
2020/03/12 Javascript
Openlayers实现点闪烁扩散效果
2020/09/24 Javascript
[13:21]DOTA2国际邀请赛采访专栏:RSnake战队国士无双,Fnatic.Fly
2013/08/06 DOTA
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
python实现360皮肤按钮控件示例
2014/02/21 Python
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
python抓取京东小米8手机配置信息
2018/11/13 Python
Python3分析处理声音数据的例子
2019/08/27 Python
python 检测图片是否有马赛克
2020/12/01 Python
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
Kidsroom台湾:来自德国的婴儿用品
2017/12/11 全球购物
材料采购员岗位职责
2013/12/17 职场文书
医药工作岗位求职信分享
2013/12/31 职场文书
行政副总岗位职责
2014/02/23 职场文书
2014年度工作总结报告
2014/12/15 职场文书
python使用pygame创建精灵Sprite
2021/04/06 Python