Hi, Thinking

用Sublime Text 3打造一个完美的python工作环境

总字数:约3600字,阅读时间:约7分钟

自从学习了Python之后,一直想找一个好的Python IDE环境,但是一直没有找到心仪的。我认为,程序员一定要对自己好一点,每天面对的编程界面一定要赏心悦目,不然如何面对一天的工作。Pycharm的工作界面略显难看,换了各种主题都没有找到合适的,而且Pycharm实在有点大,很多功能用不上,却让运行变得很卡。也曾经使用过一段时间VS (visual studio 2015),对于曾经的C++程序员而言,VS的用户界面还是让我觉得很舒心的,但是VS新接入python时间不长,出现的很多问题很难找到合适的解决方案。还用过Eclipse+pydev的方式,但是我在学习Java的时候就觉得Eclipse的界面真的不是一般的难看。最后我放弃了所有的IDE,用Sublime Text 3来编写python程序,然后直接内嵌一个编译器来实现查看编译结果。但是每次调试的方法都是用print各种变量的方式来看,效率低下。终于,我找到了一个合适的插件,能方便的调用PDB调试程序,现在写Python整个人都是开心的。

Sublime Text 3

ST3 (Sublime Text 3) 是一个跨平台的文本编辑器,以其丰富的快捷键和灵活的插件著称,使用起来相当的方便。而且我认为,ST3是我见过最漂亮的文本编辑器。这个编译器自带了很多的编程语言的高亮显示,C/C++,Python,Java,Matlab等等。在这个界面的吸引下,我决定转投ST3的旗下。

main_UI.png

可以看到,中间是主要的编程界面,左边是工作目录,右边上面是PDB的调试界面,右边下面是Python的交互式界面。将编程界面用来专心写程序,程序的编写过程中如果遇到什么语言方面或者库内容方面的问题,可以在右下角的交互式界面中进行查看。代码编写完之后,可以在右上角用PDB进行调试,而且在调试的时候也可以很方便的查看代码。并且可以根据工作目录来查看工程下其他的源码。在ST3中,其可以通过右键跳转到函数的定义之中,可以方便的查看函数内容。并在结合ST3中自带的各种快捷键,编码效率相当高。有兴趣的同学可以看看这份非官方教程,和它的中文版非官方教程

具体的安装方法在教程里面都有,可以在里面看,安装这个不是我要讲的主要内容,所以在这就不提了。遇到问题的话可以谷歌一下,基本上没有什么问题。

SublimeREPL

SublimeREPL是ST中的一个插件,它可以让我们在ST中运行解释器(REPL),而且对Python还有特别的支持,能运行选中的代码并且启动PDB调试。

我们可以使用Package Control来安装这个,在ST3中使用快捷键Ctrl+Shift+P,调出Package Control界面,不想用快捷键的可以在Preferences->Package Control中调出。在输入框输入Install Package。

pcip.png

回车之后需要等待一下,ST3需要点时间来检索安装库。完成了之后会出来一个插件检索框。在里面输入SublimeREPL,然后回车安装即可。但是有时候会出现找不到这个库的情况。这个时候可以去SublimeREPL的github上面下载源码,然后解压到ST3的包目录(./User/AppData/Roaming/Sublime Text 3/Package)中。

安装好了之后,可以在ST3中Tools->SublimeREPL->Python看到一些Python的启动选项,可以点开其中的Python,这个会调用系统中的Python解释器,并在ST3中呈现。也可以写一两个Python程序试一下其他的功能,里面有RUN current file,PDB current file等等。这样我们就可以在ST3中编写Python,并且可以直接调试。

但是,每次都要点击这么多按钮,确实比较麻烦,我们来设置几个快捷键,让整个操作便捷一点。进入快捷键绑定界面,Preferences->Key Bindings调出ST3的快捷键绑定界面。在User那个文件中加入下面这些代码。

1
2
3
4
5
[
{ "keys": ["f1"], "caption": "SublimeREPL: Python - RUN current file", "command": "run_existing_window_command", "args": {"id": "repl_python_run", "file": "config/Python/Main.sublime-menu"}},
{ "keys": ["f2"], "caption": "SublimeREPL: Python - PDB current file", "command": "run_existing_window_command", "args": {"id": "repl_python_pdb", "file": "config/Python/Main.sublime-menu"}},
{ "keys": ["f3"], "caption": "SublimeREPL: Python - Python", "command": "run_existing_window_command", "args": {"id": "repl_python", "file": "config/Python/Main.sublime-menu"}}
]

这个可以根据自己的喜好来添加,我设置的是F1是运行当前文件,F2是用PDB调试程序,F3是调出交互式Python编译器。这样,基本的环境就搭建完了。

SublimeLinter-pep8

SublimeLinter-pep8是一个python代码样式的检测工具,可以用于修正python代码的书写方法,能让自己的代码看上去更加清爽一点。

同样,这个插件可以使用Package Control来进行安装,在Install Package中输入SublimeLinter-pep8,然后安装即可。安装完后,选取需要修改样式的代码,点击鼠标右键,可以看到有一个AutoPEP8选项,然后点击Format即可。这款插件还有显示样式错误,设置快捷键等等功能,但是由于我有自己的代码风格,所以用这个比较少,只是在无法确定一些风格怎么处理的时候才会用到,所以也就懒得继续探索了。想要继续探索的同学可以谷歌一下。

SFTP

SFTP是一款特别棒的远程同步插件。很多时候我们需要将写完的代码同步到服务器上去执行,传统方式就是切换到FTP上,然后将代码拷到服务器上,然后回到远程控制台去执行。这样操作相当繁琐。然后我找到了SFTP能实现远程代码同步的插件。最后的结果大概像下面这样。这个插件反馈很友好,能及时反馈同步的文件及结果。

SFTP.png

具体安装方式跟所有插件一样,使用Package Control,选择SFTP即可。不过这个部署的服务器好像需要科学上网才能连接上,而且这个服务器的地址不在在线PCA列表中。我一开始下了很久都提示连接失败,直到我使用全局代理才成功下载。

安装完后,选择File->SFTP/FTP->Set up server,配置自己的服务器信息。然后保存,保存的时候他的默认路劲是user目录下的SFTP文件夹,没有默认文件名,我们可以以工程名或者服务器名来命名这个文件。

完成之后选择你要同步的文件夹,在边栏选择你要同步的文件或文件夹,右键SFTP/FTP->Map to Remote。这个时候会在当前文件夹下创建一个配置文档,主要是一些同步操作的配置。具体参数的细节可以在官网SFTP找到,我的配置如下图所示。

SFTP-setting.png

保存好配置之后,再右键SFTP/FTP里面的选项变成了同步操作,这样他就会自动同步了。

布局

正常的ST3界面只有单纯的输入界面和选项卡。调试或者运行会出现新的选项卡,相互之间切换也是一件很麻烦的事情,所以需要改变一下布局。

在ST3的View->Layout中有很多布局形式,最开始的时候,我使用的是Grid的四格布局。但是我觉得显示的效果并不是很好,每个输入框太小,代码都看不全。

grid_layout.png

其他的布局格式看上去也不是很适用,所以想在网上找一个好的布局方式。但是ST3对布局方式好像不能定制化。但是在谷歌的过程中,我发现了一种T字型的三个布局,相当的不错。设置方式是这样的,先选择双列布局View->Layout->Columns:2,然后增加文件分组View->Groups->Move File to New Group,这样就可以多一个编辑框了。

main_UI.png

至于左边的工作目录,只要每次打开的时候都选择打开文件就可以了,File->Open Folder,然后选择你的工作目录就可以了。

终于搭建好了一个舒心的Python工作环境,以后可以开开心心写Python了。

Kivi.记