至少很长一段时间内,我个人用的一直是pycharm,也感觉挺好用的,也没啥大毛病

但是pycharm确实有点笨重,啥功能都有,但是有很多可能这辈子我也不会用到,并且pycharm打开的速度确实不敢恭维,即使固态硬盘也只能快了那么一丢丢。所以就尝试了很多IDE工具,最终选择了Sublime
我也相信,通过我的介绍,你也会爱上它的.

首先其他语言有的sublime也必须得有,并且更好用,主要有:

  1. 集成代码分析
  2. 代码的自动补全
  3. git功能的集成
  4. Sublime command-line 工具

不过上述的的这些功能不像pycharm一样给你配置好了而是需要自己进行一些设置,对很多人来说看着这些设置可能觉得好复杂,感觉还不如直接用pycharm算了,虽然现在晚上也有很多教程或者文档教你怎么配置sublime的python开发环境,但是似乎都不是那么完善

所以下面的配置中会包括以下主要内容:

  1. python代码语法和风格的检查
  2. 超越其他IDE的代码补全
  3. 跳转到python标准库,第三方库以及自己定义的函数
  4. 格式化你的代码符合PEP8规范
  5. 编辑器的设置,让你写出符合PEP8标准的python代码
  6. 平滑的git集成与git命令行工具一起工作
  7. sublime 命令行工具的设置即使用
  8. 自定义配置颜色,让自己的代码看起来更漂亮,更易读
  9. sublime 插件的安装
  10. ......

注意:为了防止新安装的插件没有生效,可以每次安装完成后重启一下sublime

安装Sublime

通过下图所示的地址下载并安装,我的安装环境是win7 64位 sp1

安装完成之后第一次打开应该如下图所示,表示没有注册,有能力的还是支持一下正版的好

下载“Package Control” Package Manager

Sublime 有很多插件,这些插件为我们写python代码提供了非常强大的功能,这些插件需要单独安装。
而安装这些插件最方便的方法就是通过Package Control的插件,这其实就是一个插件管理器,帮助我们从Sublime中安装,升级和移除插件,这样对于我们管理插件来说是非常方便的,安装好它之后在通过它来安装其他插件
点击Tools 菜单下的Install Package Control 就可以了

当出现如下图提示时,表示安装完成
如果想要使用需要重启一下Sublime,然后通过快捷键ctrl+shift+p 或者通过点击Tools菜单下的
CommandPalette 弹出如下图:

这样到这里Sublime的基本安装是完成了

设置Python环境

设置python的代码分析工具

这个工具有以下功能:

  1. 分析语法错误
  2. 分析代码结构问题,如:使用没有定义的变量
  3. 分析不符合规范和美观的代码

所以当这个工具被很好的集成在Sublime中的时候,对自己写代码会有非常大帮助
下面通过把Flake8和Sublime集成起来,而Flake8是非常好的一个工具在python中
速度非常快,误报率低,用它来做代码分析检查是非常合适的

Flake8是一个需要独立安装的命令行工具
在安装Flake8之后,再为Sublimean安装SublimeLinter和SublimeLinter-flake8插件

Install Flake8

pip install flake8

安装完成之后通过flake8 --help可以看到如图所示:

如果后面需要升级这个插件只需要通过命令:
pip install --upgrade flake8

Install SublimeLinter

SublimeLinter是Sublime的代码框架,它可以集成Flake8这样的linter引擎来检查我们的代码,
并可以把它们的消息转换成Sublime Text然后把它们显示在我们代码旁边。
SublimeLinter 可以让Flake8和Sublime Text成为一个非常完美的搭档,可以直接在代码编辑器里看到Flake8的消息。
所以首先我们需要安装SublimeLinter,然后我们将安装连接Flake8和SublimeLinter的SublimeLinter-flake8

1.通过ctrl+shift+p 进入如下图,并输入 install Package,然后回车

初次会慢点,然后提示如下图:

输入我们要安装的:SublimeLinter,选择如图所示进行安装:

提示如下图所示表示安装完成

Install SublimeLinter-flake8
现在需要将SublimeLinter和Flake8集成连接起来,这里就通过SublimeLinter-flake8插件来完成
同样的,和上一个插件安装方法类似也是通过ctrl+shift+p 进入如下图,并输入Flake8

当出现如上图提示是表示安装完成,这个时候需要我们Sublime重启后生效,然后我们打开可以写一个py文件
写了一个打印hello,World,我们从右下角就可以看出

从上图的提示我们可以看出,我们的插件已经在起作用了,提示的错误是:在这个文件没有回车到新的一行
虽然现在已经生效了,但是为了让它更好用我们还需要对
SublimeLinter-flake8做一些简单的配置

配置SublimeLinter-flake8

先看一下当出现错误的时候的提示:

其实这种错误提示可能不是很友好,会在错误部分外面有个框,在其他IDE中可以能是在错误代码下有
红色下划线表示的,如果习惯了那种显示方式可以通过下面方法配置

看到如上图所示时,把左边的配置全部拷贝到右边的配置里并把开头的default更改为user
然后把配置中 "mark_style": "outline",更改为:"mark_style":“squiggly underline”
更改后的效果如下:

在配置中找到"lint_mode": "background"更改为:"lint_mode": "load/save"

代码自动补全功能

很多程序员选择IDE工具的时候都希望他的自动补全功能能好用点,而Sublime 一开始并没有非常好用的插件,直到出现了Anaconda插件
它提供了一下功能:
1. 代码的自动补全
2. 显示python类,方法或者函数的使用方法
3. 检查导入模块是否有效
4. 按照PEP8规范自动化格式我们的代码
5. 可以跳转到函数的定义或者类的定义
6. .....

Install the Anaconda Package

和上面安装讲的安装插件的方法一样

出现如上图提示表示安装完成,重启生效
当然我们还是需要进行一些简单配置:

配置如下图所示内容

{
"anaconda_linting": false,
"pep8": false
}
上述的配置是因为这个插件和flake8插件的功能相互冲突,这里最好使用flake8的配置就可以了

我们可以测试它的一些功能:
当我们输入print的时候就会显示出参数及文档

这里还包括了很多功能不再一一演示,功能使用都在:

这个插件有很多实用的功能可以自己详细看看并使用

配置git环境

首先要确保自己的电脑已经安装了git
如果没有安装,需要去这里下载:https://git-scm.com/download/win
安装过程如下:

对自己的git环境进行基本的配置:
git config --global user.email "yourname@yourdomain.com"
git config --global user.name "Firstname Lastname"

git config --global --list 命令可以查看上面的配置

安装git插件GitGutter

安装过程和之前安装其他插件的方法一样:

安装这个插件的作用是为了让我们更好的和git联合在一起,如:在公司里你从git上拉了同时的代码,然后你在上面做更改,这个时候当然你可以过git diff命令查看你修改了哪些地方,但是如果我们通过这个插件直接可以在代码里体现出来,如下图,图一是我从git上随便clone了一个代码,然后操作修改

从上图中我们能够很清楚的知道我们添加了哪些代码,同样的删除哪些代码,修改哪些代码都会有相应的提示

让这个功能不止这些,通过下面例子演示:
git init test-repo
cd test-repo
echo hello world > myfile.txt git add myfile.txt
通过上面命令添加一个test-repo仓库,然后写了一个文件

正常如果我们提交肯定是git add .然后git commit出现如下图:

这里可以通过Esc然后:q键退出
其实这里我们可以让每次commit的时候打开sublime,在sublime编辑里写提交信息,这样会更加方便,配置如下:
git config --global core.editor “‘C:\Program Files\Sublime Text 3\subl.exe’ –wait –new-window”

这样当我们再次commit的时候就是如下图效果:

现在如果信息过长就会看起非常不方便
Git Commit Message Syntax 插件安装

这个插件安装好后不会有提示,重启一下sublime

外观的配置

关于字体

在如下图所示的地方下载字体

可以选择字体之后直接右键安装

配置内容如下:
修改Preferences中的settings

添加内容有:
"font_face": "Ubuntu Mono",
"font_size":14,
"font_options": [ 
"directwrite",
"subpixel_antialias"
],
"font_options": [ 
"directwrite",
"subpixel_antialias", 
"no_bold", "no_italic"
],
"caret_style": "solid", 
"wide_caret": true, 
"highlight_line": true,
"draw_white_space": "all", 
"indent_guide_options": [
"draw_active"
],
"line_padding_bottom": 1, 
"line_padding_top": 2,
"fold_buttons": false,
"scroll_past_end": true,
"shift_tab_unindent": true,

上面这些修改之后还有一个重要的修改,让你的ide看起更加好看

安装Tomorrow Color Schemes插件

安装SoDaReloaded插件

安装完成后配置Preferences → Settings
配置如下:
"theme": "SoDaReloaded Dark.sublime-theme",
然后做如下操作:

选择标注的主题色,最后效果如下:

配置PEP8规范

配置内容如下:
"tab_size": 4, 
"translate_tabs_to_spaces": true,
"trim_trailing_white_space_on_save": true, 
"ensure_newline_at_eof_on_save": true,
"rulers": [ 
72,
79
],
"word_wrap": true,
"wrap_width": 80

这样配置好后,我们写代码的长度就有限制,超过了就会自定换行,如下图:

关于文件管理插件安装

默认情况下如果我们在左边的文件直接右键只能看到如此简陋的操作,如果想要更加丰富,则需要安装插件

当安装完成后:

需要配置perferences -> settings

"file_exclude_patterns":[
"*.pyc",
"*.pyo",
"*.exe",
"*.dll",
"*.obj",
"*.o",
"*.a",
"*.lib",
"*.so",
"*.dylib",
"*.ncb",
"*.sdf",
"*.suo",
"*.pdb",
"*.idb",
".DS_Store",
"*.class",
"*.psd",
"*.db",
"*.sublime-workspace"
],
"folder_exclude_patterns": [
".svn", 
".git",
".hg", 
"CVS", 
"__pycache__"
]

安装Zen Tabs插件

安装完成后做做如下配置:

配置内容为:
"open_tab_limit": 5,
"hightlight_modified_tabs": true,
"show_full_path": false,

到此所有的配置完成!

 

让你用sublime写出最完美的python代码--windows环境的更多相关文章

  1. 如何写出高质量的Python代码--做好优化--改进算法点滴做起

    小伙伴你的程序还是停留在糊墙吗?优化代码可以显示程序员的素质欧! 普及一下基础了欧: 一层for简写:y = [1,2,3,4,5,6],[(i*2) for i in y ]       会输出  ...

  2. 利用这10个工具,你可以写出更好的Python代码

    我每天都使用这些实用程序来使我的Python代码可显示. 它们是免费且易于使用的. 编写漂亮的Python比看起来难. 作为发布工作流程的一部分,我使用以下工具使代码可显示并消除可避免的错误. 很多人 ...

  3. 写出形似QML的C++代码

    最开始想出的标题是<Declarative C++ GUI库>,但太标题党了.只写了两行代码,连Demo都算不上,怎么能叫库呢……后来想换掉“库”这个字,但始终找不到合适词来替换.最后还是 ...

  4. 写出gradle风格的groovy代码

    写出gradle风格的groovy代码 我们先来看一段gradle中的代码: buildscript { repositories { jcenter() } dependencies { class ...

  5. [label][翻译][JavaScript-Translation]七个步骤让你写出更好的JavaScript代码

    7 steps to better JavaScript 原文链接: http://www.creativebloq.com/netmag/7-steps-better-javascript-5141 ...

  6. PAT 1002 写出这个数 (20)(代码)

    1002 写出这个数 (20)(20 分) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10^100 ...

  7. PyTorch最佳实践,怎样才能写出一手风格优美的代码

    [摘要] PyTorch是最优秀的深度学习框架之一,它简单优雅,非常适合入门.本文将介绍PyTorch的最佳实践和代码风格都是怎样的. 虽然这是一个非官方的 PyTorch 指南,但本文总结了一年多使 ...

  8. 用sublime写出的第一个网页

    STEP1 完成语义分析器 我用的vs2013 c语言写的 这个过程会在下一篇文章中详讲 准备好几个编译好的图,放在一个文件夹里,像下面这样 STEP2 规划好html的框架 上代码! (截图版) ( ...

  9. 如何写出高质量的JavaScript代码

    优秀的Stoyan Stefanov在他的新书中(<Javascript Patterns>)介绍了很多编写高质量代码的技巧,比如避免使用全局变量,使用单一的var关键字,循环式预存长度等 ...

随机推荐

  1. 【python】__new__和__init__区别

    原文:http://blog.csdn.net/cnmilan/article/details/8849680 __new__:创建对象时调用,返回当前对象的一个实例__init__:创建完对象后调用 ...

  2. 设计模式-模板方法模式(Head First)

    参考书籍:Head First设计模式 什么是模板方法模式 定义:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤. 怎 ...

  3. mybatis简单搭建

    背景 闲来没事把mybatis再熟悉一下,可能之前自己搭过没有记录.mybatis其实就是一个orm框架,在我们之前做.net工作的时候,我们的ef,dapper等都是这样的框架,java现在web流 ...

  4. TFboy养成记 tensorboard

    首先介绍几个用法: with tf.name_scope(name = "inputs"): 这个是用于区分区域的.如,train,inputs等. xs = tf.placeho ...

  5. E:I Think I Need a Houseboat-poj

    E:I Think I Need a Houseboat 总时间限制:  1000ms 内存限制:  65536kB 描述 Fred Mapper is considering purchasing ...

  6. em单位使用小结

    em是一个css的单位. em是一个相对的单位.相对于当前对象内文本的字体尺寸.如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸.(引自CSS2.0手册) 一般在DOM元素中,当前 ...

  7. Servlet之过滤器(Filter)和监听器(Listener)

    过滤器 过滤器是一个java组件,可以拦截发送至某个servelet,jsp页面或静态页面的请求,可以在响应发送到客户之前进行拦截 工作原理: 过滤器类必须实现 Filter 接口,包含的方法如下: ...

  8. 在使用ajax实现三级联动调用数据库数据并通过调出的数据进行二级表单查询

    在使用ajax实现三级联动查询数据库数据后再使用ajax无刷新方式使用三级联动调出的数据进行二级查询 但是现在遇到问题,在二级查询的时候期望是将数据以表格的形式展示在三级联动的下方,但是现在在查询后会 ...

  9. CentOS7 64位 安装MySQL5.7

    安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo ...

  10. Nova控制节点集群

    #Nova控制节点集群 openstack pike 部署 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html ##Nova控制节点集群 # control ...