1. 程式人生 > >使用sublime實現python程式碼補全

使用sublime實現python程式碼補全

Sublime Text是一個非常好用,並且功能十分強大(介面十分漂亮)的文字/程式碼編輯器,憑藉其自身獨特的自動補全功能,其實已經可以完成相當部分的程式碼自動完成功能了。最近在學習Caffe,經常使用Python來做預處理,經常要使用各種陌生的module或者是函式,這時候就非常懷念IDE(比如VS、IDEA)裡面各種強大的自動補全功能了。

其實關於自動完成功能,PyCharm是可以勝任的,但是我的Python經常只是用來寫些小的指令碼,實在是不想再安裝龐大臃腫的IDE。而且我也不想捨棄sublime的碼程式碼的流暢手感,因此就搜尋了下如何能在Sublime下完成自動補全的功能。

Sublime這麼流行,外掛這麼多,答案當然是有的。那就是Anaconda。

一開始看到這個名字我老以為是在講Python的發行版Anaconda,其實並不是。這裡說的Anaconda是Sublime的一個外掛,提供關於Python程式碼編輯的非常強大的功能。

下面是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,回車確定

微信截圖_20170615193624

然後稍微等待片刻,左下角有狀態顯示,此時正在讀取Package列表。等Package列表出現之後,輸入anaconda,選中備選項中的第一個

install_anaconda

然後再稍等片刻。安裝完成後,在Preferences\Package Settings中會出現Anaconda的選項卡,證明Anaconda包已經下載安裝成功。

微信截圖_20170615194116

配置Anaconda

要想正常使用Anaconda,必須要設定你自己Python.exe所在路徑,這也是最關鍵的一步。

如上圖所示,開啟Settings – Default,然後ctrl+f搜尋python_interpreter,找到沒有註釋的一行,大約在95行左右:

微信截圖_20170615194544

將預設路徑修改為你自己python.exe所在的路徑切記是python.exe的路徑,而不是python.exe所在資料夾的路徑.

然後儲存,重開Sublime,下來便可以編輯Python檔案感受一下不輸於PyCharm的自動完成功能了。

個性化

預設的Anaconda設定可能並非我們需要的,比如自動完成的力度,以及想關閉Anaconda的一些自帶的我們不需要的功能。

下面是我自己的配置檔案,我僅對我自己所修改的配置做解釋,更詳細的解釋Settings – Default中都有。

個性化的修改推薦在Settings -User中進行,這樣子也清楚自己都修改了哪些配置,也方便重新安裝環境的時候儲存遷移配置。

我自己的配置如下:

JavaScript
        <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",

}









12345678910111213141516171819
{“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”,}