将Sublime Text 3设置为Python全栈开发环境
為 Sublime Text 3 設(shè)置 Python 的全棧開(kāi)發(fā)環(huán)境
Sublime Text 3?(ST3) 是一個(gè)輕量級(jí)的跨平臺(tái)文字編輯器,尤以其輕快的速度,易用性和強(qiáng)大的社區(qū)支持而著稱。它一經(jīng)面世便被認(rèn)為是一個(gè)杰出的編輯器,而它真正的強(qiáng)大之處在于你可以使用 Package Control 來(lái)增加它的功能以及可以進(jìn)行各種自定義設(shè)置。
在本文章中,我們將會(huì)看到如何將 Sublime Text 打造成為 Python 的全棧開(kāi)發(fā)環(huán)境(從前端到后端),如何通過(guò)自定義主題和插件來(lái)增強(qiáng)它的基本功能,并且還將會(huì)涉及到很多使 ST3 變得更加強(qiáng)大的常用的命令,特性以及快捷鍵。
本教程將假定你使用的是 Mac 電腦并且習(xí)慣于使用終端。如果你使用的是 Windows 或者 Linux 操作系統(tǒng),本文涉及到的一些命令將有可能會(huì)有所不同,但是你應(yīng)該仍然可以很容易地通過(guò) Google 來(lái)獲取到與本教程相關(guān)的解答。
在我們開(kāi)始之前,讓我們先討論一下我所謂的”全?!本唧w指的是什么。
在現(xiàn)在的 HTML5 以及移動(dòng)設(shè)備開(kāi)發(fā)中,Javascript 簡(jiǎn)直無(wú)處不在。是的,無(wú)處不在!僅僅使用 Python 基于某個(gè)框架比如 Django 或者 Flask 進(jìn)行開(kāi)發(fā)是不夠的。如果你想從始至終真正的自己開(kāi)發(fā)一個(gè)網(wǎng)站的話,你必須熟悉 Javascript(以及 Javascript 的一大堆的框架),REST API(含狀態(tài)傳輸 API),響應(yīng)式設(shè)計(jì),當(dāng)然還有 HTML 和 CSS,以及其他許多東西。現(xiàn)在讓我們來(lái)面對(duì)一個(gè)問(wèn)題:就像其他任何一個(gè)手藝人一樣,為了成為一個(gè)最厲害的程序員,你的工具必須犀利,你的開(kāi)發(fā)環(huán)境必須被打造成全棧開(kāi)發(fā)——那就是我們馬上將要開(kāi)始的工作…
特性
讓我們從 ST3 的一些默認(rèn)特性開(kāi)始著手吧…
同時(shí),你還可以點(diǎn)擊?Tools > New Snippet?來(lái)創(chuàng)建屬于你自己的代碼片。請(qǐng)參照這個(gè)?文檔來(lái)獲取幫助,也可以在?這里?查看我個(gè)人用到的一些 snippets。
自定義 Sublime Text 3
在你下載完 ST3 以后…
在命令行中添加?subl?命令
就像 TextMate 的?mate?命令一樣,Sublime Text 擁有一個(gè)叫做?subl?的命令行工具,可以用來(lái)通過(guò)終端打開(kāi)一個(gè)文件或者一整個(gè)文件夾。
你需要建立一個(gè)指向 subl 二進(jìn)制文件的符號(hào)鏈接來(lái)使 subl 命令有效:
Python| 1 | $ ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" ~/bin/subl |
嘗試使用以下命令來(lái)打開(kāi) Sublime 來(lái)確保鏈接生效了:
Python| 1 | $subl |
如果以上命令沒(méi)有效果,你可能需要將 /bin 添加到你的環(huán)境變量中:
Python| 1 | $ echo "export PATH=~/bin:$PATH" >> ~/.profile |
然后重新嘗試第一步。
如果你仍然遇到問(wèn)題,嘗試查看?這篇?文章來(lái)獲取幫助。 或者你可以看看如何在?Windows和?Linux?中建立符號(hào)鏈接。
現(xiàn)在你就可以通過(guò)下述命令來(lái)打開(kāi)文件或者文件夾了:
Python| 1 2 3 4 5 6 7 8 | # open the current directory $subl. # open a directory called tests $subl~/Documents/test # open a file called text.txt $subltest.txt |
如果路徑中含有空格,你必須使用雙引號(hào)將路徑括起來(lái):
Python| 1 | $ subl "~/Documents/test/my test file.txt" |
想要查詢所有可用的命令,請(qǐng)打開(kāi)幫助文件:
Python| 1 | $subl--help |
安裝 Package Control
為了使用眾多的?插件?來(lái)擴(kuò)展 Sublime 的功能,你需要安裝一個(gè)叫做?Package Control?的插件管理器——這個(gè)東西你必須要手動(dòng)安裝。但是一旦你安裝好了以后,你就可以使用 Package Control 來(lái)安裝,移除或者升級(jí)所有的 ST3 插件了。
- List Packages 顯示所有已安裝的插件
- Remove Packages 移除一個(gè)指定的插件
- Upgrade Package 更新一個(gè)指定的插件
- Upgrade/Overwrite All Packages 更新所有已安裝的插件
請(qǐng)查閱官方?文檔?獲取更多的命令。
創(chuàng)建自定義配置文件
你可以通過(guò)一個(gè)基于 JSON 的配置文件來(lái)充分的自定義 Sublime Text,這使得轉(zhuǎn)移或者同步你的自定義文件到另一個(gè)系統(tǒng)變得非常容易。首先,我們需要新建我們自己的配置文件。我們最好是為不同的系統(tǒng)環(huán)境和編程語(yǔ)言各自創(chuàng)建一個(gè)配置文件。
依次點(diǎn)擊 Sublime Text > Preferences > Settings – User 來(lái)創(chuàng)建一個(gè)配置文件。在該文件中添加一個(gè)空的 JSON 類然后就可以在其中寫(xiě)入你的配置內(nèi)容了。如下所示:
Python| 1234567 | {??????// base settings??????"auto_complete": false,??????"sublimelinter": false,??????"tab_size": 2,??????"word_wrap": true} |
主題
ST3 為你提供了完全自定義化一個(gè)適合自己主題的能力。當(dāng)然,你如果不是那么的挑剔的話,你可以通過(guò) Package Control 從許許多多的由 Sublime 社區(qū)設(shè)計(jì)的?主題?中下載一個(gè)。 在下載之前你可以通過(guò)?ColorSublime?來(lái)預(yù)覽這些主題。
廣受歡迎的的?Soda Dark?和極簡(jiǎn)風(fēng)格的?Flatland?是我個(gè)人最喜歡的兩個(gè)主題。
在安裝完了主題以后, 請(qǐng)務(wù)必更新你的配置文件.?Sublime Text > Preferences > Settings – User:
Python| 1 2 3 4 | { ??????"theme":"FlatlandDark.sublime-theme", ??????"color_scheme":"Packages/Theme-Flatland/FlatlandDark.tmTheme" } |
插件
除了那些主題以外,我還會(huì)使用以下這一些插件來(lái)提升我的工作效率。
SideBarEnhancements
SideBarEnhancements?擴(kuò)展了側(cè)邊欄中菜單選項(xiàng)的數(shù)量,從而提升你的工作效率。諸如”New file” 和 “Duplicate” 這樣的選項(xiàng)對(duì)于 ST3 來(lái)說(shuō)實(shí)在是太重要了, 我甚至覺(jué)得 ST3 本來(lái)就應(yīng)該提供這些功能。而且僅憑 “Delete” 這一個(gè)功能就讓這個(gè)插件值得下載。這個(gè)功能將你會(huì)在你刪除文件的時(shí)候把它放入回收站。雖然這個(gè)功能乍一看沒(méi)什么用,但是當(dāng)你沒(méi)有使用這樣的功能而徹底刪除了一個(gè)文件的時(shí)候,除非你用了版本管理軟件,否則你將很難恢復(fù)這個(gè)文件。
現(xiàn)在就下載吧!
Anaconda
Anaconda?是一個(gè)終極 Python 插件。它為 ST3 增添了多項(xiàng) IDE 類似的功能,例如:
- Autocompletion?自動(dòng)完成,該選項(xiàng)默認(rèn)開(kāi)啟,同時(shí)提供多種配置選項(xiàng)。
- Code?linting?使用支持 pep8 標(biāo)準(zhǔn)的 PyLint 或者 PyFlakes。因?yàn)槲覀€(gè)人使用的是另外的 linting 工具,所以我會(huì)在 Anaconda 的配置文件?Anaconda.sublime-settings中將 linting 完全禁用。操作如下:?Sublime > Preferences > Package Settings > Anaconda > Settings – User:?{"anaconda_linting": false}
- McCabe code complexity checker?讓你可以在特定的文件中使用?McCabe complexity checker. 如果你對(duì)軟件復(fù)雜度檢查工具不太熟悉的話,請(qǐng)務(wù)必先瀏覽上邊的鏈接。
- Goto Definitions?能夠在你的整個(gè)工程中查找并且顯示任意一個(gè)變量,函數(shù),或者類的定義。
- Find Usage?能夠快速的查找某個(gè)變量,函數(shù)或者類在某個(gè)特定文件中的什么地方被使用了。
- Show Documentation:?能夠顯示一個(gè)函數(shù)或者類的說(shuō)明性字符串(當(dāng)然,是在定義了字符串的情況下)
你可以在這里,或者通過(guò) ST3 的 Package Settings:?Sublime Text > Preferences > Package Settings > Anaconda > README?來(lái)查看所有這些特性。
SublimeCodeIntel?是另外一個(gè)非常流行的插件,它的許多特性與 Anaconda 類似。我建議同時(shí)也試試它。
Djaneiro
Djaneiro?支持 Django 模版和關(guān)鍵字高亮以及許多實(shí)用的代碼片(snippets)功能。其中的 snippets 絕對(duì)是省時(shí)神器。你可以通過(guò)很少幾個(gè)關(guān)鍵字就能創(chuàng)建許多常見(jiàn)的 Django 代碼塊比如 templates,models,forms,以及 views。請(qǐng)查看官方文檔獲取 snippets 列表。
我個(gè)人非常喜歡的以下兩個(gè)用于創(chuàng)建 template 的代碼片:輸入?var?就可以新建?{{ }},而輸入?tag?就能新建?{% %}。
requirementstxt
Requirementstxt?可以為你的 requirements.txt 文件提供自動(dòng)補(bǔ)全,語(yǔ)法高亮以及版本管理功能。
SublimeLinter
SublimeLinter?是 ST3 的一個(gè)代碼靜態(tài)檢查工具框架(linter)。這個(gè)插件本身來(lái)說(shuō)并不包含任何的一個(gè) linter,但是你可以通過(guò)在 Package Control 中輸入?SublimeLinter-[linter_name]?的方式來(lái)安裝一個(gè) linter。你可以點(diǎn)擊這里查看官方的 linter。同時(shí)你還可以在 Package Control 中查看到許多的第三方 linter。請(qǐng)點(diǎn)擊這里查看安裝說(shuō)明。
對(duì)于 Python 的代碼靜態(tài)檢查器,我建議使用?SublimeLinter-pyflakes?和?SublimeLinter-pep8。
與此同時(shí),我也會(huì)使用?SublimeLinter-jshint,?SublimeLinter-pyyaml,?SublimeLinter-csslint,SublimeLinter-html-tidy,以及?SublimeLinter-json。
以上大多數(shù)的 linter 都需要先安裝一些依賴庫(kù)才能使用,所以在安裝前請(qǐng)務(wù)必閱讀他們的安裝說(shuō)明。
你可以通過(guò)修改用戶自定義的 SublimeLinter.sublime-settings 文件來(lái)對(duì)你的每個(gè) linter 個(gè)性化:Sublime Text > Preferences > Package Settings > SublimeLinter > Settings – User.?例如我通過(guò)以下代碼來(lái)忽略 pep8 中的錯(cuò)誤和警告:
Python| 12345678 | "pep8": {????"@disable": false,????"args": [],????"excludes": [],????"ignore": "E501,C0301,W0142,W0402,R0201,E1101,E1102,C0103,R0901,R0903,R0904,C1001,W0223,W0232,W0201,E1103,R0801,C0111",????"max-line-length": 100,????"select": ""}, |
GitGutter
GitGutter?讓 ST3 能在左邊欄的位置顯示一個(gè)小圖標(biāo),用以表示在最后一次提交以后,代碼是否有追加,修改或者刪除。
如果你想讓該插件支持分布式的版本管理軟件(Git,SVN,Bazaar 和 Mercurial)。請(qǐng)查看?Modific。
FTPSync
FTPSync?能夠?qū)⒛愕捻?xiàng)目和遠(yuǎn)程文件進(jìn)行同步。你只需要打開(kāi)文件便可以下載更新(如果你的遠(yuǎn)端文件比本地更加新的話),而且如果你對(duì)本地文件做出了修改可以立即同步到遠(yuǎn)程服務(wù)器。這是非常棒的同步本地文件和遠(yuǎn)程文件的方法。你可以通過(guò)以下的方法來(lái)添加你的遠(yuǎn)程服務(wù)器:Sublime Text > Preferences > Package Settings > FTPSync > Setup FTPSync.
Sample settings:
Python| 1 2 3 4 5 6 7 8 9 10 11 | { ??'primary': { ????host:'ftp.mywebsite.com', ????username:'johnsmith', ????password:'secretpassword', ????path:'/www/', ????upload_on_save:true, ????tls:true ??} } |
我個(gè)人喜歡把密碼設(shè)為?null?因?yàn)槲也幌胱屛业拿艽a出現(xiàn)在配置文件中。這樣 FTPSync 會(huì)在我每次保存完文件后要求我輸入密碼。
AdvancedNewFile
AdvancedNewFile?可以讓你在 ST3 中使用簡(jiǎn)單的幾個(gè)快捷鍵便創(chuàng)建一個(gè)新的文件夾或者一個(gè)新的文件:
你只需要通過(guò)幾個(gè)快捷鍵便可以打開(kāi) AdvancedNewFile 的輸入框。然后輸入路徑和文件名。當(dāng)你按下回車鍵后,文件便被創(chuàng)建了。除此之外,如果目標(biāo)文件夾并不存在的話,該文件夾將會(huì)被自動(dòng)建立。在默認(rèn)情況下,你創(chuàng)建的文件的路徑將會(huì)顯示在狀態(tài)欄中。
請(qǐng)查看?Github?上的這篇文檔來(lái)獲取更為詳細(xì)的使用說(shuō)明。特別建議請(qǐng)?jiān)敿?xì)閱讀TAB自動(dòng)補(bǔ)全(Tab Completion)以及預(yù)定義別名(Predefined Aliases)部分。
我把“cmd+n”設(shè)置為了通過(guò) AdvancedNewFile 創(chuàng)建新文件的快捷方式。該快捷鍵可以通過(guò)修改 Key Bindings – User file 來(lái)實(shí)現(xiàn)?Sublime Text > Preferences > Package Settings > AdvancedNewFile > Key Bindings – User:
Python| 123 | [??{ "keys": ["cmd+n"], "command": "advanced_new_file_new"}] |
你也可以更改默認(rèn)打開(kāi)的文件夾路徑:Sublime Text > Preferences > Package Settings > AdvancedNewFile > Settings – User
Python| 1 | {"default_initial":"/Users/michaelherman/Documents/repos"} |
這樣我創(chuàng)建新文件的時(shí)候,/Users/michaelherman/Documents/repos將會(huì)自動(dòng)被添加到路徑最前方,因?yàn)?9%的情況下我都會(huì)把我的腳本放在這個(gè)路徑下。
Emmet
Emmet,以前叫做 Zen Coding,讓你可以通過(guò)簡(jiǎn)單的縮寫(xiě)來(lái)創(chuàng)建 HTML 或者 CSS 的代碼塊。
例如,你只需要輸入感嘆號(hào)!,然后按下 tab 鍵,便可以在一個(gè) HTML 文件中創(chuàng)建一段帶有幾個(gè)基本標(biāo)簽的 HTML5 文檔類型的代碼:
Python| 12345678910 | <!doctype html><html lang="en"><head>??<meta charset="UTF-8">??<title>Document</title></head><body></body></html> |
請(qǐng)查看官方文檔或者速查手冊(cè)獲取更多信息。
Markdown Preview
Markdown Preview?可以用來(lái)預(yù)覽和編譯 markdown 文件。
你可以打開(kāi) Package Manager 然后輸入?Markdown Preview?來(lái)查看可用的命令:
- Markdown Preview: Python Mrakdown: 在瀏覽器中預(yù)覽
- Markdown Preview: Python Mrakdown: 導(dǎo)出 HTML 文件
- Markdown Preview: Python Mrakdown: 拷貝到剪貼板
- Markdown Preview: Github風(fēng)格Markdown: 在瀏覽器中預(yù)覽
- Markdown Preview: Github風(fēng)格Markdown: 導(dǎo)出 HTML 文件
- Markdown Preview: Github風(fēng)格Markdown: 拷貝到剪貼板
- Markdown Preview: 打開(kāi)Markdown速查手冊(cè)
一旦你完成轉(zhuǎn)換,你之后的所有保存都會(huì)立即反映到轉(zhuǎn)換的文件中。
快捷鍵
Python
| 1 2 | 1.選定一個(gè)單詞,點(diǎn)擊**“cmd+d”**來(lái)選擇同樣的單詞,再次點(diǎn)擊**“cmd+d”**繼續(xù)選擇下一個(gè)單詞… 2.或者**“cmd+單擊”**來(lái)指定多個(gè)你想要同時(shí)修改的地方。 |
如果想了解更多關(guān)于快捷鍵的內(nèi)容,請(qǐng)看一下這篇文章。
自定義命令
你可以很容易地使用 Python 來(lái)編輯你自己的自定義命令和快捷鍵組合。目前我個(gè)人使用的有以下這些:
通過(guò)文件選項(xiàng)打開(kāi)你的 Package 文件夾(Sublime > Preferences > Browse Packages),然后打開(kāi) User 文件夾,接下來(lái)將上述的 Python 文件添加到 “/Sublime Text 3/Packages/User” 文件夾中。最后請(qǐng)?jiān)?Key Bindings – User file (Sublime Text > Preferences > Package Settings > AdvancedNewFile > Key Bindings – User) 文件中完成快捷鍵綁定。
Python| 1 2 3 4 5 6 7 8 9 10 11 12 | [ ??//Copyfilename ??{ ????"keys":["cmd+shift+c"], ????"command":"copy_path_to_clipboard" ??}, ??//Closeallothertabs ??{ ????"keys":["cmd+alt+w"], ????"command":"close_tabs" ??} ] |
額外資源
總結(jié)
我希望你能夠通過(guò)閱讀這篇文章將一些上面提到一些插件整合到你的 ST3 中。同時(shí)希望你能夠改造自己的配置文件來(lái)創(chuàng)建一些屬于自己的自定義設(shè)定,以此來(lái)提升你的工作效率。如果你有任何的建議或者意見(jiàn),請(qǐng)?jiān)谙路降脑u(píng)論欄中留下你的評(píng)論。?最后,請(qǐng)到這個(gè)?repo?中查看 dotfiles 文件夾,其中包含了我上文中所提到的一些文件。
謝謝!
由?Derrick Kearney?編輯。非常感謝!
by?Lane
from:?realpython.com http://python.jobbole.com/81312/總結(jié)
以上是生活随笔為你收集整理的将Sublime Text 3设置为Python全栈开发环境的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 12306的变态验证码算得了什么?我有P
- 下一篇: Python爬虫实战六之抓取爱问知识人问