基于Sublime Text搭建Python IDE详解

1. 问题

最近在使用Sublime Text 2写Python代码的时候,发现了两个小问题:

代码中如果使用了img等函数进行交互的时候,直接使用Ctrl+B进行编译时,运行信息栏内无法输入交互信息,程序会提示报错。

在Win 8.1下面,使用Ctrl+B进行编译时,运行信息栏内不显示编译信息,一片空白(这个不知道是否属于个例、设置错误还是bug之类的)

2. 安装的插件

SublimeREPL

针对上面的两个问题,我找到了SublimeREPL插件,可以用于运行和调试一些需要交互的程序,同时在Win 7和Win 8.1下面都能正常工作。

比较棒的是这个插件可以支持多种语言,而对于Python也支持多种运行模式,我比较常用到的是Python和Python - RUN current file 。

SublimeCodeIntel

SublimeCodeIntel 可以支持代码的自动补全以及成员/方法提示等功能,安装此插件后,Sublime Text 2就有点IDE的感觉了。

SublimeLinter

SublimeLinter 是用来在写代码时做代码检查的,可以检查Python代码是否符合PEP8的要求。

3. 优化
SublimeREPL添加快捷键
SublimeREPL安装之后没有快捷键,每次运行程序必须用鼠标去点工具栏,有些不爽,所以需要给SublimeREPL添加快捷键。

这里可以看到所有Python方法的名称及id,根据此可以自定义用户快捷键,在偏好--键绑定–用户中输入:

 代码如下 复制代码

[ {"keys":["f5"],
    "caption": "SublimeREPL: Python - RUN current file",
    "command": "run_existing_window_command", "args":
    {
        "id": "repl_python_run",
        "file": "config/Python/Main.sublime-menu"
    }}
]

本文仅定义了Python - RUN current file的快捷键,我在这里使用的是F5,可以根据自己的需要进行灵活的调整。

代码区和编译区分隔显示
选择查看--布局--行:2,将Sublime分割为上下两部分,选择F5进行代码编译,编译信息将会显示在下面的编译区域。

下面推荐几款必备的常用插件:

1.Tag插件

  Tag插件可以为web开发者提供html和css标签,很方便快捷,对于web前端设计者非常实用。

  

2.Prefixr插件

  为css3提供一些前缀,比如

  

3.Terminal插件

  Terminal插件可以允许在Sublime Text2中打开cmd命令窗口,很实用的一个插件,安装好该插件好,打开cmd命令窗口的快捷键是

Ctrl+Shift+T。

4.SublimeTmpl插件

  这个插件允许用户定义文件的模板,比如在写一个html文件时,老是重复文件头的一些引入信息很繁琐,可以定义一个模板直接生成必须的信息,具体的SublimeTmpl插件用法请自行百度。

5.SideBarEnhancements插件

  一个增强侧边栏文件夹浏览功能的插件,比较不错。

6.DocBlockr插件

  用来生成注释块的插件,安装好之后直接输入"/*",然后再按回车键,即可生成代码注释块。

7.SublimeCodeIntel插件

  智能提示插件,这个插件的智能提示功能非常强大,可以自定义提示的内容库,我的Python智能提示设置(配置文件路径为packagesSublimeCodeIntel-master.codeintelconfig)为:

 

 代码如下 复制代码
{
    "Python": {
        "python":'D:/Program Files/Python26/python.exe',
        "pythonExtraPaths": ['D:/Program Files/Python26','D:/Program Files/Python26/DLLs','D:/Program Files/Python26/Lib','D:/Program Files/Python26/Lib/plat-win','D:/Program Files/Python26/Lib/lib-tk','D:/Program Files/Python26/Lib/site-packages']
    }
} 

 其中“pythonExtraPaths”就是需要智能提示所需要用到的内容库。

8.AndyPython插件

  一款针对Python语言的智能提示插件,其需要提示的关键字和函数可以在PackagesAndyPythonPythonCompletions.py中设置。

9.AndyJS2插件

  一款针对Javsscript和jquery智能提示的插件。

10.jquery插件

  jquery提示库。

11.Ctags插件

  该插件可以实现快速定位到函数定义的地方。

12.为了避免打开含中文字符的文件出现乱码,需要先安装GBK Encoding Support这个插件,再安装ConvertToUTF8插件即可。

  如果有朋友觉得没有注册有时候会有弹窗比较讨厌,这里介绍一种破解办法:

  用一种十六进制编辑器(我这里用的UltraEdit)打开sublime text 2安装目录下的文件sublime_text.exe,在此之前最好备份一下,如果没有破解成功可以恢复,然后定位到000CBB70这一行,找到8A C3,将其修改为B0 01,然后保存即可,

  

关于Sublime Text 2暂时只介绍这么多了,对一些插件感兴趣的朋友可在github上查找相关资料就行了,让我们一起体验sublime text2的便捷之处

 

时间: 2024-09-20 16:29:47

基于Sublime Text搭建Python IDE详解的相关文章

Sublime Text 2 设置文件详解

Sublime Text 2是那种让人会一眼就爱上的编辑器,不仅GUI让人眼前一亮,功能更是没的说,拓展性目前来说也完全够用了,网上介绍软件的文章和推荐插件的文章也不少,而且很不错,大家可以去找找自己需要的.而且 Linux 支持也做的非常好. 之前想设置什么都是直接在网上搜,但最近想调行距,这个把我给难住了,软件上的设置没找到,网上搜也没有,最后的最后在Sublime的官方论坛找到了,个人觉得行距还是很影响视觉体验的,看看下面的对比图就知道了: 看来想驾驭好这软件不弄清楚配置文件是不行了,周末

Python线程详解

  这篇文章主要介绍了Python线程详解,本文详细讲解了线程方方面面的知识,如线程基础知识线程状态.线程同步(锁).线程通信(条件变量)等内容,需要的朋友可以参考下 1. 线程基础 1.1. 线程状态 线程有5种状态,状态转换的过程如下图所示: 1.2. 线程同步(锁) 多线程的优势在于可以同时运行多个任务(至少感觉起来是这样).但是当线程需要共享数据时,可能存在数据不同步的问题.考虑这样一种情况:一个列表里所有元素都是0,线程"set"从后向前把所有元素改成1,而线程"p

Python闭包详解

闭包(closure)是函数式编程的重要的语法结构.函数式编程是一种编程范式 (而面向过程编程和面向对象编程也都是编程范式).在面向过程编程中,我们见到过函数(function):在面向对象编程中,我们见过对象(object).函数和对象的根本目的是以某种逻辑方式组织代码,并提高代码的可重复使用性(reusability).闭包也是一种组织代码的结构,它同样提高了代码的可重复使用性. 不同的语言实现闭包的方式不同.Python以函数对象为基础,为闭包这一语法结构提供支持的 (我们在特殊方法与多范

基于angular中的重要指令详解($eval,$parse和$compile)_AngularJS

在angular的服务中,有一些服务你不得不去了解,因为他可以说是ng的核心,而今天,我要介绍的就是ng的两个核心服务,$parse和$compile.其实这两个服务讲的人已经很多了,但是100个读者就有100个哈姆雷特,我在这里讲讲自己对于他们两个服务的理解. 大家可能会疑问,$eval呢,其实他并不是一个服务,他是scope里面的一个方法,并不能算服务,而且它也基于parse的,所以只能算是$parse的另一种写法而已,我们看一下ng源码中$eval的定义是怎样的就知道了 $eval: fu

基于Java中字符串内存位置详解_java

前言 之前写过一篇关于JVM内存区域划分的文章,但是昨天接到蚂蚁金服的面试,问到JVM相关的内容,解释一下JVM的内存区域划分,这部分答得还不错,但是后来又问了Java里面String存放的位置,之前只记得String是一个不变的量,应该是要存放在常量池里面的,但是后来问到new一个String出来应该是放到哪里的,这个应该是放到堆里面的,后来又问到String的引用是放在什么地方的,当时傻逼的说也是放在堆里面的,现在总结一下:基本类型的变量数据和对象的引用都是放在栈里面的,对象本身放在堆里面,

python 队列详解及实例代码_python

队列特性:先进先出(FIFO)--先进队列的元素先出队列.来源于我们生活中的队列(先排队的先办完事). Queue模块最常与threading模块一起构成生产-消费者模型,提供了一个适用于多线程编程的先进先出的数据结构,即队列. 该模块源码中包含5个类: 其中,Empty和Full是两个异常类,当队列的Queue.get(block=0)或者调用get_nowait()时,如果队列为空,则抛EmptyException异常. 同理,当队列的Queue.put(block=0)或者调用put_no

sublime text写python代码时,tab缩进只有两个空格,怎么改成4个?

问题描述 sublime text写python代码时,tab缩进只有两个空格,怎么改成4个? 使用前在网上找了sublime text配置python的方法. 设置了preference.sublime-settings-users里面的tab_size:4见下图使用效果如下,不管是打tab还是sublime默认的自动缩进都是两个空格 解决方案 Sublime text 设置Tab为4个空格sublime text2 配置tab为4个空格Sublime Text2 配置tab为4个空格 解决方

基于PHP+jQuery注册模块开发详解教程

/* ******* 环境: Apache2.2.8 + PHP5.2.6 + MySQL5.0.51b + jQuery-1.8.3.min.js ******* ******* 其他组件:Zend_mail( Zend_framework 1.11.11 ) ******* Date:2014-09-25 ******* Author:小dee */ 了一个简单的PHP+jQuery注册模块,需要填写的栏目包括用户名.邮箱.密码.重复密码和验证码,其中每个栏目需要具备的功能和要求如下图: 开

Python命名空间详解_python

通俗的来说,Python中所谓的命名空间可以理解为一个容器.在这个容器中可以装许多标识符.不同容器中的同名的标识符是不会相互冲突的.理解python的命名空间需要掌握三条规则: 第一,赋值(包括显式赋值和隐式赋值)产生标识符,赋值的地点决定标识符所处的命名空间. 第二,函数定义(包括def和lambda)产生新的命名空间. 第三,python搜索一个标识符的顺序是"LEGB". 所谓的"LEGB"是python中四层命名空间的英文名字首字母的缩写. 最里面的一层是L