原本是想用pycharm,但你看它的內存要求,個人虛擬機一共也就1Ghtml
Vim太彆扭了,就算有代碼顏色,不能自動對齊,不能規範格式,跳轉到函數定義,顯示文檔,要配置起來太費勁,因此就嘗試着用sublime text3 來搭建Python IDEpython
目前最簡單的方法是經過ppa安裝,打開終端,輸入如下命令: linux
sudo add-apt-repository ppa:webupd8team/sublime-text-3 git
sudo apt-get update github
sudo apt-get install sublime-text-installer web
卸載 sublime text 命令: shell
sudo apt-get remove sublime-text-installer 數據庫
啓動時按下subl(不是1是L) 編程
還能夠用subl test.py 打開指定文件 json
或者用 subl 目錄 打開一整個目錄(這個很炫)
若是路徑中含有空格,你必須使用雙引號將路徑括起來:
$ subl "~/Documents/test/my test file.txt"
裝完了之後能夠激活它,在Help裏輸入license key
—– BEGIN LICENSE —–
Michael Barnes
Single User License
EA7E-821385
8A353C41 872A0D5C DF9B2950 AFF6F667
C458EA6D 8EA3C286 98D1D650 131A97AB
AA919AEC EF20E143 B361B1E7 4C8B7F04
B085E65E 2F5F5360 8489D422 FB8FC1AA
93F6323C FD7F7544 3F39C318 D95E6480
FCCC7561 8A4A1741 68FA4223 ADCEDE07
200C25BE DBBC4855 C4CFB774 C5EC138C
0FEC1CEF D9DCECEC D3A5DAD1 01316C36
—— END LICENSE ——
Key來自 https://fatesinger.com/77763
爲了使用衆多的 插件 來擴展 Sublime 的功能,你須要安裝一個叫作 Package Control 的插件管理器——這個東西你必需要手動安裝。可是一旦你安裝好了之後,你就可使用 Package Control 來安裝,移除或者升級全部的 ST3 插件了。
按Ctrl + ~ (Esc下面那個) 打開控制檯
到 https://packagecontrol.io/installation#st3
獲取安裝代碼
輸完之後enter就能夠執行了
如今你能夠經過快捷鍵 cmd+shift+P 打開 Package Control 來安裝其餘的插件了。輸入 install 而後你就能看見屏幕上出現了 Package Control: Install Package,點擊回車而後搜索你想要的插件。想裝什麼直接點擊。
注意看下面的status bar是顯示進度的地方
關於linux下 sublime的菜單欄,它其實在上面,不像windows那樣,在sublime的裏面,若是沒有的話能夠點一下上面的欄
若是上面依舊沒有菜單欄,那麼它實際上是ubuntu 16.04的bug
有時候,就是突然又點不出來了,那麼能夠
首先 shift+ctrl+P 寫上view:toggle menu
或者用sudo subl重啓sublime
或者用以下命令
initctl restart unity-panel-service
重啓一下
詳見以下網址解決
http://askubuntu.com/questions/768562/some-menubars-are-missing-on-ubuntu-16
能夠隱藏右邊的minimap
用ctrl+shift+P 搜索 View:toggle minimap
或者直接在菜單裏選view-> show minimap
Preference->Browse Packages直接就能夠跳到包所在的文件
Anaconda 是一個終極 Python 插件。它爲 ST3 增添了多項 IDE 相似的功能,例如:
這個linting 是指標出不符合規範的可疑的代碼
下面的狀態欄有不符合的提示,可是這個規範過於苛刻,沒有必要,能夠關掉
當你打一個函數時,就有文檔提示
首選項,插件設置,Anaconda,Settings – User
{
"anaconda_linting": false,
//保存文件後自動pep8格式化
"auto_formatting": true,
}
更換一個叫soda light的主題
https://github.com/buymeasoda/soda-theme
Using Sublime Package Control
If you are using Will Bond's excellent Sublime Package Control, you can easily install Soda Theme via the Package Control: Install Package menu item. The Soda Theme package is listed as Theme - Soda in the packages list.
Activating the theme
Sublime Text 3
Open your User Settings Preferences file Sublime Text -> Preferences -> Settings - User
Add (or update) your theme entry to be "theme": "Soda Light 3.sublime-theme" or "theme": "Soda Dark 3.sublime-theme"
Example Sublime Text 3 User Settings
{
"theme": "Soda Light 3.sublime-theme"
}
可是配置好以後代碼區仍是黑色的,要改爲白色的就改下color theme
注意color theme和theme是兩回事,theme是控制側邊的欄的,而color theme是控制代碼區的
Blackboard是比較好看的配色
sublime很好用,可是ubuntu下不能輸入中文,這是一個很大的問題。不知道爲何開發着一直也不解決,好在仍是有高手在,總能找到方法。
解決這個方法必須拋棄原來的IBus輸入框架,有人說裝個inputHelp擴展包,可是它至關因而在別的地方寫再粘上去,太費勁
不如換成Fcitx輸入法
sudo apt-get install fcitx-table-pinyin
而後相關的依賴庫和框架都會自動安裝上。
這個是必須的,若是不是請告訴我更快捷的方法。
能夠從ubuntu右上角頂欄的小鍵盤圖標中打開,配置,以下圖:
打開菜單,皮膚,dark系列大大的好,,若是你不喜歡那你就接着換吧!
記得切換輸入法的快捷鍵仍是windows中習慣的Ctrl+Shift和Ctrl+Space(空格).
見 https://github.com/lyfeyaj/sublime-text-imfix
此解決辦法來自 http://www.jianshu.com/p/bf05fb3a4709
而後就能夠順利輸出中文了
運行一下就知道sublime默認的是python2.7若是我想讓他運行3.5,怎麼辦呢,首先使用
which python3.5找到它的路徑,
從這張圖能夠看出3.5和3是兩個版本,同時運行,ubuntu16.04真的裝了不少版本的python
還有path裏不包含python的,它會本身到bin目錄下找
ubuntu的which、whereis、locate和find命令
which
只能尋找執行文件 ,並在PATH變量裏面尋找。
whereis
從linux文件數據庫(/var/lib/slocate/slocate.db)尋找,因此有可能找到剛剛刪除,或者沒有發現新建的文件。
locate
同上,不過文件名是部分匹配。
find
是直接在硬盤上搜尋,功能強大,但耗硬盤,通常不要用。
若是你須要在linux中的sublime text 3中使用python3,就須要使用自定義環境,選擇下面的New Build System,會彈出一個後綴爲sublime-build的文件。
寫入如下配置:
{ "cmd": ["/usr/bin/python3", "-u", "$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "selector": "source.python"} |
注意:其中python3的運行路徑須要和你係統中的路徑一致
而後保存文件名爲python3.sublime-build,而後選擇環境爲python3便可,保存的路徑就是crtl+S後默認的路徑
這樣就有python3.5了
而後你選中什麼build system就是用什麼編譯,選python3.5就是3.5,選python就是2.7
要想確切地知道python版本不要再用3/5去實例,能夠用
若是是給人讀,用 sys.version,
若是是給機器比較,用 sys.version_info,
若是是判斷是否是 PyPy 等第三方實現,用 sys.implementation(要 Python 3.3)。
import sys
print(sys.version)
New 一個
這是由於沒保存成py腳本,固然不能執行,保存下
按下ctrl+S,就會彈出文件保存目錄
是否是比vim方便好幾條大街?
保存成py腳本後,按ctrl+B 自動編譯運行
同一層次的語句必須有相同的縮進。每一組這樣的語句稱爲一個塊,不能隨意地開始新的語句塊,
不要混合使用製表符和空格來縮進,由於這在跨越不一樣的平臺的時候,沒法正常工做。我 強烈建議 你在每一個縮進層次使用 單個製表符 或 兩個或四個空格 。
選擇這三種縮進風格之一。更加劇要的是,選擇一種風格,而後一向地使用它,即 只 使用這一種風格。
不只僅是python,對於編程來講用space替代tab無論對於哪一種語言都是一個好的選擇,由於代碼文件可能會在不一樣的環境、用不一樣的編輯器打開,而對於space的處理幾乎全部的編輯器、全部的OS環境都是同樣的,而對於tab的處理卻不盡相同,有的會直接展開成空格,有的不會,並且展開爲空格的話,有的是4個有的是8個,這樣會形成代碼的格式看起來不一致。對於python來講這個問題更加劇要,由於縮進對於python來講是語法的一部分,因此將tab弄成space會減小不少麻煩。
因此咱們選擇四個空格縮進法
若是已經寫了很長的一段代碼,忽然發現最開始的地方少了個if,以前寫的全部代碼都要在if以內,原來用c的時候直接加兩個花括號就好了,如今用python怎麼辦?
選擇你所要縮進一片代碼而後按Tab就能夠了,全部行一塊兒縮進;若是要取消縮進,Shift-Tab就會一級一級的往左走了。
https://www.python.org/dev/peps/pep-0008/
這裏是python規範
爲了配合這個四個空格縮進法,能夠在sublime裏設置一個tab=四個空格,這樣打起字來方便不少
// 設置tab的大小爲4
"tab_size":4,
// 使用空格代替tab
"translate_tabs_to_spaces": true,
首選項,設置-用戶
在這裏配置
{
"color_scheme": "Packages/Color Scheme - Default/Blackboard.tmTheme",
"ignored_packages":
[
"Vintage"
],
"theme": "Soda Light 3.sublime-theme",
// 設置tab的大小爲4
"tab_size":4,
// 使用空格代替tab
"translate_tabs_to_spaces": true,
// 高亮未保存文件
"highlight_modified_tabs": true,
// 窗口失焦當即保存文件
"save_on_focus_lost": true,
// 保存時自動去除行末空白
"trim_trailing_white_space_on_save": true,
// 保存時自動增長文件末尾換行,這樣 git 提交時不會生產額外的 diff
"ensure_newline_at_eof_on_save": true,
// 默認編碼格式
"default_encoding": "UTF-8",
// 側邊欄文件夾顯示加粗,區別於文件
"bold_folder_labels": true,
// 當前行高亮
"highlight_line": true,
// 設置行間距,看起來不那麼"擠"
"line_padding_bottom": 1,
"line_padding_top": 1,
}
配置完了之後有修改的文件都會用藍點表示
而失去焦點後,窗口會自動保存,十分方便
Ctrl+] 向右縮進
Ctrl+[ 向左縮進
Ctrl+Z 撤銷。
Ctrl+Y 恢復撤銷。
Ctrl+F 打開底部搜索框,查找關鍵字。
Ctrl+A 選中全文
Ctrl+B 運行python
Ctrl+Shift+P 調出命令窗
Ctrl+shift+R 格式化
Ctrl+shift+V 格式化粘貼 這個頗有用,能夠把網上的代碼按照個人格式粘到個人文檔裏
Ctrl+//註釋 這個比較厲害,若是是python,就是加#號的,想取消再弄一次就行了
還有一個致命的問題,input函數很差使
按ctrl+B之後,根本很差使,網上說的卻是他們會說輸入有異常,但個人這個是毫無反應
用package control 安裝sublimeREPL 裝完了之後在
Tools Python run-current-file 裏能運行輸入了
可是這個python是2.7 你想要運行的是python3.5,就要以下配置
A Read-Eval-Print-Loop (REPL) is available both as a standalone program and easily includable in other programs. REPL provides a way to interactively run JavaScript and see the results. It can be used for debugging, testing, or just trying things out.
交互式解釋器(REPL)既能夠做爲一個獨立的程序運行,也能夠很容易地包含在其餘程序中做爲總體程序的一部分使用。REPL爲運行JavaScript腳本與查看運行結果提供了一種交互方式,一般REPL交互方式能夠用於調試、測試以及試驗某種想法。
能夠理解執行的交互式命令行界面,至關於一個DOS界面的Shell.
Python是支持REPL的語言
https://sublimerepl.readthedocs.io/en/latest/#installation
以上是SublimeREPL配置Lua語言的文檔
模仿這個能夠配置Python3.5
首先Packages:Browse Package 找到 SublimeREPL的文件夾,再進入config文件夾,能夠看到許多語言的配置文件,Python也在裏面
在這裏新建一個Python3.5的文件夾,在裏面新建Default.sublime-commands和Menu.sublime-menu兩個文件(模仿Python文件夾)咱們Python3.5目前只要能打開shell運行,和運行這個腳本,兩個功能,所以就只要包含Python3.5 和 Python3.5 – Run current file兩項就行了
Default.sublime-commands配置以下:
[
{
"caption": "SublimeREPL: Python3.5",
"command": "run_existing_window_command", "args":
{
"id": "repl_python3.5",
"file": "config/Python3.5/Main.sublime-menu"
}
},
{
"caption": "SublimeREPL: Python3.5 - RUN current file",
"command": "run_existing_window_command", "args":
{
"id": "repl_python3.5_run",
"file": "config/Python3.5/Main.sublime-menu"
}
}
]
Menu.sublime-menu配置以下:
[
{
"id": "tools",
"children":
[{
"caption": "SublimeREPL",
"mnemonic": "R",
"id": "SublimeREPL",
"children":
[
{"caption": "Python3.5",
"id": "Python3.5",
"children":[
{"command": "repl_open",
"caption": "Python3.5",
"id": "repl_python3.5",
"mnemonic": "P",
"args": {
"type": "subprocess",
"encoding": "utf8",
"cmd": ["python3.5", "-i", "-u"],
"cwd": "$file_path",
"syntax": "Packages/Python/Python.tmLanguage",
"external_id": "python3.5",
"extend_env": {"PYTHONIOENCODING": "utf-8"}
}
},
// run files
{"command": "repl_open",
"caption": "Python3.5 - RUN current file",
"id": "repl_python3.5_run",
"mnemonic": "R",
"args": {
"type": "subprocess",
"encoding": "utf8",
"cmd": ["python3.5", "-u", "$file_basename"],
"cwd": "$file_path",
"syntax": "Packages/Python/Python.tmLanguage",
"external_id": "python3.5",
"extend_env": {"PYTHONIOENCODING": "utf-8"}
}
}
]}
]
}]
}
]
注意Default.sublime-commands文件裏的id 和Menu.sublime-menu文件裏的id要一致,Menu.sublime-menu裏的caption就是菜單欄的層級內容,cmd裏的內容python3.5,就是你直接在ubuntu terminal裏打的命令,而Default.sublime-commands文件裏的file指向了Menu.sublime-menu文件,經過id和文件名,就能夠找到相應命令的配置
保存文件後能夠從菜單欄,Tools->SublimeREPL->Python3.5運行命令
爲了和ctrl+B運行保持一致,可使用
分紅上下兩欄,上面寫代碼,下面運行結果,十分方便
每次這樣到菜單欄裏去找,太慢,能不能像ctrl+B同樣直接運行呢?
能夠的,只要設置快捷鍵就行了,在Preference->key Bindings-User裏
寫上以下配置:
[
{"keys":["f4"],
"caption": "SublimeREPL: Python - RUN current file",
"command": "run_existing_window_command", "args":
{
"id": "repl_python_run",
"file": "config/Python/Main.sublime-menu"
}
},
{"keys":["f5"],
"caption": "SublimeREPL: Python3.5 - RUN current file",
"command": "run_existing_window_command", "args":
{
"id": "repl_python3.5_run",
"file": "config/Python3.5/Main.sublime-menu"
}
}
]
注意id仍是要和Menu.sublime-menu文件裏的id要一致,F4運行2.7 repl F5 運行3.5 repl
F4正常工做,可是F5確拋出了異常,當沒有響應或者出錯了的時候能夠看看控制檯
ValueError:No JSON Object could be decoded
這說明咱們的python3.5 Menu.sublime-menu文件有問題,
使用了Json在線語法檢查器
它說是Menu.sublime-menu 裏的註釋 // run files 不合法,去掉註釋後,F5也能正常運行了
屢次運行的時候會出現以下的問題
can't open file '$file_basename': [Errno 2] No such file or directory
這個只要再次用鼠標點擊一下test.py就行了,就能夠獲取運行的文件了
事實上,JSON文件只是記錄數據的格式,不適合像XML同樣做爲配置文件,
Comments were removed from JSON by design.
I removed comments from JSON because I saw people were using them to hold parsing directives, a practice which would have destroyed interoperability. I know that the lack of comments makes some people sad, but it shouldn't.
Suppose you are using JSON to keep configuration files, which you would like to annotate. Go ahead and insert all the comments you like. Then pipe it through JSMin before handing it to your JSON parser.
Source: Public statement by Douglas Crockford on G+
之因此Sublime能支持帶註釋的json,多是它在提交前解析過了,可是咱們的異常來自Python3.3 說明python3.3裏不支持解析這種帶註釋的json,所以之後仍是不要加帶註釋的json了
JSON(JavaScript Object Notation)一種簡單的數據格式,比xml更輕巧。JSON它是一種輕量級的數據交換格式,很是適合於服務器與 JavaScript 的交互。JSON是JavaScript原生格式,這意味着在JavaScript中處理JSON數據不須要任何特殊的API或工具包。它易於人閱讀和編寫,同時也易於機器解析和生成。它基於JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON採用徹底獨立於語言的文本格式,可是也使用了相似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成爲理想的數據交換語言。
2、JSON的編寫規則
JSON的規則很簡單:對象是一個無序的"'名稱/值'對"集合。一個對象以"{"(左括號)開始,"}"(右括號)結束。每一個"名稱"後跟一個":"(冒號);"'名稱/值'對"之間使用","(逗號)分隔。
規則以下:
一、映射用冒號(":)表示。名稱:值
二、並列的數據之間用逗號(",")分隔。名稱1:值1,名稱2:值2
三、映射的集合(對象)用大括號("{}")表示。
{
名稱1:值1,
名稱2:值2
}
四、並列數據的集合(數組)用方括號("[]")表示。
[
{名稱1:值,名稱2:值2},
{名稱1:值,名稱2:值2}
]
如圖就建立Object對象:老是以{開始以}結束,對象的每一個屬性名與屬性值之間用英文的默冒號(:)分隔,多個屬性之間用英文的(,)隔開:語法格式以下:
student = {
name:"kouxiaolin",
age:22,
sex:"女"
}
備註:使用JSON語法建立對象時,屬性不只但是普通的字符,並且能夠是任何基本數據類型,還能夠是函數,數組,甚至是另一個用JSON語法建立的對象.
teacher = {
name:"xiaoqian",
Student:{
Name:"kouxiaolin",
Sex:"女"
},
//使用JSON爲teacher對象分配一個方法
toString:function(){
alert("方法的測試…….");
}
}
JSON建立數組以英文的中括號[開始,而後以中括號]結束.其中放入數組的元素.元素之間用英文的逗號,分開最後的不須要英文逗號。
例如:
Arr = [value1,value2,value3,………]
JSON 使用 JavaScript 語法
由於 JSON 使用 JavaScript 語法,因此無需額外的軟件就能處理 JavaScript 中的 JSON。
經過 JavaScript,您能夠建立一個對象數組,並像這樣進行賦值:
例子
var employees = [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName": "Carter" }
];
能夠像這樣訪問 JavaScript 對象數組中的第一項:
employees[0].lastName;
返回的內容是:
Gates
能夠像這樣修改數據:
employees[0].lastName = "Jobs";
cities =[
province1:{
name:"北京",
city[
"大興","昌平","朝陽","海淀","東城","西城"
]
},
province2: {
name:"河南",
city[
"鄭州","安陽","平頂山","開封","商丘","洛陽"
]
}
]
一個叫cities的數組 裏有兩個對象,province1 province2:
province1有名字和城市兩個屬性,其中城市屬性是個數組,裏面有"大興","昌平","朝陽","海淀","東城","西城 這些值
就這麼看json等配置文件,太難了,咱們須要括號匹配插件BracketHighlighter,可是裝完之後只有下劃線提示不明顯,須要配置
Bracket Settings-Default 文件不能修改,只能修改Bracket Settings-User,複製如下設置:
"bracket_styles": {
// "default" and "unmatched" styles are special
// styles. If they are not defined here,
// they will be generated internally with
// internal defaults.
// "default" style defines attributes that
// will be used for any style that does not
// explicitly define that attribute. So if
// a style does not define a color, it will
// use the color from the "default" style.
"default": {
"icon": "dot",
// BH1's original default color for reference
//"color": "entity.name.class",
"color": "brackethighlighter.default",
"style": "highlight"
},
// This particular style is used to highlight
// unmatched bracket pairs. It is a special
// style.
"unmatched": {
"icon": "question",
"color": "brackethighlighter.unmatched",
"style": "highlight"
},
"curly": {
"icon": "curly_bracket",
"color": "brackethighlighter.curly",
"style": "highlight"
},
"round": {
"icon": "round_bracket",
"color": "brackethighlighter.round",
"style": "highlight"
},
"square": {
"icon": "square_bracket",
"color": "brackethighlighter.square",
"style": "highlight"
},
"angle": {
"icon": "angle_bracket",
"color": "brackethighlighter.angle",
"style": "highlight"
},
"tag": {
"icon": "tag",
"color": "brackethighlighter.tag",
"style": "highlight"
},
"c_define": {
"icon": "hash",
"color": "brackethighlighter.c_define",
"style": "highlight"
},
"single_quote": {
"icon": "single_quote",
"color": "brackethighlighter.quote",
"style": "highlight"
},
"double_quote": {
"icon": "double_quote",
"color": "brackethighlighter.quote",
"style": "highlight"
},
"regex": {
"icon": "regex",
"color": "brackethighlighter.quote",
"style": "highlight"
}
}
設置好了之後,就是白色的高亮提示,並很差看,並不直觀,我要設置的是代碼包圍效果
就像這樣的效果
設置
"high_visibility_enabled_by_default": true,
"high_visibility_style": "outline"
可是這樣的框框是白色的不是藍色的,要設置成藍色的,看官方文檔
https://facelessuser.github.io/BracketHighlighter/customize/#configuring-highlight-style
high_visibility_color
Modifies the high visibility color. There are three types of settings you can use:
// Color for high visibility mode
"high_visibility_color": "__bracket__",
There are two special style definitions whose names are reserved: default and unmatched, but you can configure them.
Add this to your color scheme:
<dict>
<key>name</key>
<string>Bracket Curly</string>
<key>scope</key>
<string>brackethighlighter.curly</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#CC99CC</string>
</dict>
</dict>
And then use the scope:
"curly": {
"icon": "curly_bracket"
"color": "brackethighlighter.curly",
// "style": "underline"
},
因此若是把"high_visibility_color": "__default__",設爲default ,它就會用
我在color scheme裏brackethighlighter.default定義的值
<dict>
<key>name</key>
<string>Bracket Default</string>
<key>scope</key>
<string>brackethighlighter.default</string>
用這個值
可是我怎麼能打開傳說中的color scheme . tmTheme 文件?搜索也搜不到只有.tmTheme.cache文件,ST3裏的文件都被壓縮了起來,能夠直接從壓縮包運行,想要看能夠安裝 PackageResourceViewer 插件
網頁 https://github.com/skuroda/PackageResourceViewer
裝好之後,open-resource
找到color Scheme-Default
找到本身的Theme
在</ array >上面加上
<dict>
<key>name</key>
<string>Bracket Default</string>
<key>scope</key>
<string>brackethighlighter.default</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#6495ED</string>
</dict>
</dict>
就有了藍色代碼包圍效果
更多顏色設置見
http://www.tuicool.com/articles/EV3eEzA
效果以下:
解決問題五大法寶