Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20086
  • 博文数量: 17
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 180
  • 用 户 组: 普通用户
  • 注册时间: 2015-01-26 19:01
文章分类

全部博文(17)

文章存档

2015年(17)

我的朋友

分类: Python/Ruby

2015-01-26 23:40:15

前言

今天发现一个项目: ptpython. 新一代的REPL神器. 玩了一下. 毅然的ipython换成了ptipython - ptpython自带的 iython的接口. 和大家介绍下

ptpython的优点

先说几个在用ipython过程中遇到的问题吧.

  1. ipython在Mac下缩进问题. 每次在交互模式里面输入一个缩进的内容, 比如下面
In [1]: def t():  ...: return 1  ...:  In [2]: def t():  return 1  

看到了吧, 缩进不正确了. ptpython没有这个问题, 它的底层库prompt_toolkit实现了一个替代物

  1. jedi. 我在emacs里面, jedi是标配. 其一是因为有epc, 可以和python通信, 它的自动补全和跳到函数/类定义真的很方便. 但是python交互解释器 还没有一个用它的. 这里真的感觉效果很好.

  2. emacs/vim键位. 好吧我经常在用ipython的时候习惯Ctrl+x Ctrl+c退出. 能用emacs的键位做编辑真的很爽
  3. 提供一个终端的菜单, 有多个选项可以选择
  4. 模式粘贴. 大家知道python有个问题: 你粘贴过来的代码不一定能运行 - 粘贴后的缩进会很奇怪的. ipython虽然有%paste和%cpaste. 但是有时候还是会有IndentationError问题. ptpython在这里独创了Paste mode. 使用F7切换. 还可以多行编辑.
  5. 可以开启多个Tab,甚至多个Tab的内容一齐显示出来. 类似vim的:split
  6. 能对你写的每行程序判断是否出现语法错误.如果你的代码有问题, 下面左侧会有错误提示 - 这其实能延伸做很多检查嘛
  7. ipython对查看对象的方法有一些问题, 比如这个:
$ipython In [1]: '/tmp'.<tab> # 不会理你的  

ptpython对这样的处理都很好

  1. 一个很贴心的特性:
$ptpython In [1]: 'tmp # 他会告诉你这是个目录, 还会自动完成列出目录下的文件. autocompletion  
  1. 最后一点吧. 它非常容易的被嵌入你的程序,你的解释器
python Python 2.7.3 (default, Apr 10 2013, 06:20:15) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. Welcome to Lazy Python. Type "help LazyPython" for help. >>> from ptpython.repl import embed >>> embed(globals(), locals(), vi_mode=False, history_filename=None) In [1]: # 看就这么2句  

ptipython

ptipython = ptpython + ipython

在安装了ptipython之后, 就可以使用了. 完全可以替代ipython. 类似bipython = bpython + ipython

文章出自:极致空包网

阅读(396) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~