Sublime Text是一个非常好用,并且功能十分强大(界面十分漂亮)的文本/代码编辑器,凭借其自身独特的自动补全功能,其实已经可以完成相当部分的代码自动完成功能了。最近在学习Caffe,经常使用Python来做预处理,经常要使用各种陌生的module或者是函数,这时候就非常怀念IDE(比如VS、IDEA)里面各种强大的自动补全功能了。
其实关于自动完成功能,PyCharm是可以胜任的,但是我的Python经常只是用来写些小的脚本,实在是不想再安装庞大臃肿的IDE。而且我也不想舍弃sublime的码代码的流畅手感,因此就搜寻了下如何能在Sublime下完成自动补全的功能。
Sublime这么流行,插件这么多,答案当然是有的。那就是Anaconda。
一开始看到这个名字我老以为是在讲Python的发行版Anaconda,其实并不是。这里说的Anaconda是Sublime的一个插件,提供关于Python代码编辑的非常强大的功能。
Anaconda官网地址是http://damnwidget.github.io/anaconda/,官网上也有详尽的安装方法,和配置说明。
下面是Anaconda的安装方法,本文方法只在Sublime Text 3上尝试过,
安装Package Control
首先确定自己的Sublime Text 已经安装了Package Control,这是一个Sublime的插件管理软件,但并不是Sublime自带的东西。
安装的方法如下:
使用快捷键ctrl+`打开命令行,或者在view中选择show console,然后输入:
import urllib.request,os; pf = ‘Package Control.sublime-package’; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), ‘wb’).write(urllib.request.urlopen( ‘http://sublime.wbond.net/’ + pf.replace(‘ ‘,’%20’)).read())
输入完敲回车,然后在菜单栏里面的Preferences中看是否能找到Package Control,找不到可以试着关掉重开一下Sublime Text。
安装Anaconda
使用快捷键ctrl+shift+p打开命令面板,输入install,面板上第一项应该会出现Package Control: Install Package,回车确定
然后稍微等待片刻,左下角有状态显示,此时正在读取Package列表。等Package列表出现之后,输入anaconda,选中备选项中的第一个
然后再稍等片刻。安装完成后,在Preferences\Package Settings中会出现Anaconda的选项卡,证明Anaconda包已经下载安装成功。
配置Anaconda
要想正常使用Anaconda,必须要设置你自己Python.exe所在路径,这也是最关键的一步。
如上图所示,打开Settings – Default,然后ctrl+f搜索python_interpreter,找到没有注释的一行,大约在95行左右:
将默认路径修改为你自己python.exe所在的路径,切记是python.exe的路径,而不是python.exe所在文件夹的路径.
然后保存,重开Sublime,下来便可以编辑Python文件感受一下不输于PyCharm的自动完成功能了。
个性化
默认的Anaconda设置可能并非我们需要的,比如自动完成的力度,以及想关闭Anaconda的一些自带的我们不需要的功能。
下面是我自己的配置文件,我仅对我自己所修改的配置做解释,更详细的解释Settings – Default中都有。
个性化的修改推荐在Settings -User中进行,这样子也清楚自己都修改了哪些配置,也方便重新安装环境的时候保存迁移配置。
我自己的配置如下:
<div class="crayon-info" style="min-height: 22.4px !important; line-height: 22.4px !important;"></div>
<div class="crayon-plain-wrap"><textarea class="crayon-plain print-no" data-settings="dblclick" readonly="" style="-moz-tab-size: 4; font-size: 16px !important; line-height: 18px !important; z-index: 0; opacity: 0; overflow: hidden;" wrap="soft">{
"python_interpreter": "D:/MyApps/Anaconda2/python.exe",
"suppress_word_completions": true,
"suppress_explicit_completions": true,
"complete_parameters": false,
"anaconda_linter_phantoms": true,
"pyflakes_explicit_ignore":
[
// "Redefined",
"UnusedImport"
// "UndefinedName",
// "UndefinedLocal",
// "UnusedVariable,",
// "UndefinedExport",
// "DuplicateArgument",
// "RedefinedWhileUnused"
],
"anaconda_linting_behaviour": "save-only",
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
{ “python_interpreter”: “D:/MyApps/Anaconda2/python.exe”, “suppress_word_completions”: true, “suppress_explicit_completions”: true, “complete_parameters”: false, “anaconda_linter_phantoms”: true, “pyflakes_explicit_ignore”: [ // “Redefined”, “UnusedImport” // “UndefinedName”, // “UndefinedLocal”, // “UnusedVariable,”, // “UndefinedExport”, // “DuplicateArgument”, // “RedefinedWhileUnused” ], “anaconda_linting_behaviour”: “save-only”, } |