给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 04 Python
python生成以及打开json、csv和txt文件的实例
Nov 16 Python
Python爬虫设置代理IP(图文)
Dec 23 Python
ActiveMQ:使用Python访问ActiveMQ的方法
Jan 30 Python
详解python实现交叉验证法与留出法
Jul 11 Python
Python3 A*寻路算法实现方式
Dec 24 Python
python小项目之五子棋游戏
Dec 26 Python
pytorch 自定义卷积核进行卷积操作方式
Dec 30 Python
Python测试线程应用程序过程解析
Dec 31 Python
基于Python共轭梯度法与最速下降法之间的对比
Apr 02 Python
pycharm 的Structure界面设置操作
Feb 05 Python
只需要100行Python代码就可以实现的贪吃蛇小游戏
May 27 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
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
php fread读取文件注意事项
2016/09/24 PHP
zend框架实现支持sql server的操作方法
2016/12/08 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
2017/02/17 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
PHP7 其他语言层面的修改
2021/03/09 PHP
Gambit vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
与jquery serializeArray()一起使用的函数,主要来方便提交表单
2011/01/31 Javascript
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
JavaScript高级程序设计 学习笔记 js高级技巧
2011/09/20 Javascript
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
jQuery实现行文字链接提示效果的方法
2015/03/10 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
2015/08/24 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
详解Angular 4.x 动态创建组件
2017/04/25 Javascript
基于Vue2.0+ElementUI实现表格翻页功能
2017/10/23 Javascript
Vue.js组件高级特性实例详解
2018/12/24 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
2019/10/23 jQuery
jdk1.8+vue elementui实现多级菜单功能
2020/09/24 Javascript
python3实现全角和半角字符转换的方法示例
2017/09/21 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
python由已知数组快速生成新数组的方法
2020/04/08 Python
python 连续不等式语法糖实例
2020/04/15 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
Python+logging输出到屏幕将log日志写入文件
2020/11/11 Python
python解决OpenCV在读取显示图片的时候闪退的问题
2021/02/23 Python
使用CSS Grid布局实现网格的流动
2014/12/30 HTML / CSS
美国最佳在线航班预订网站:LookupFare
2019/03/26 全球购物
医学院四年学习生活的自我评价
2013/11/06 职场文书
实习生体会的自我评价范文
2013/11/28 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
农村文化活动总结
2014/08/28 职场文书
个人先进事迹总结
2015/02/26 职场文书
离婚答辩状范文
2015/05/22 职场文书
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers