最近,當我主要使用Python開發環境編輯的時候,我開始越來越多地用到Sublinme Text 2.這篇文章主要說明了能讓Python的程式設計者使用更方便的一些設定和調整。
為何選擇Sublime Text?
我以前一直是TextMate的忠實使用者。這是一個輕量級的、開源的軟體,作為OS X的本地應用,具有很好的Mac風格。不過,雖然TextMate是一個很棒的編輯器,有時候還是顯得功能不夠。
我用過一些功能更強的軟體,例如 加上Python外掛的IntelliJ IDEA。 我特別喜歡它的debugger和test runner。不過,一個像IntelliJ這樣的全功能的IDE對於中小專案來說還是顯得過於龐大。
最近幾周我開始越來越多的使用 Sublime Text。當我將它安裝好之後,感覺非常不錯。它確實非常快,自動定期的更新,以及更棒的是完全支援跨平臺。對我來說,它最終勝過TextMate的地方是Sublime強大的外掛子系統。對於Python開發,有不少外掛可以讓你開發起來更流暢、更有樂趣。
我現在仍然在不同的專案之間切換編輯器。不過我發現對應Python開發,Sublime在輕量級的編輯器和全功能的IDE之間有著很好的平衡。
字型的選擇
Ubuntu Mono 是非常非常不錯的字型。前些天我剛從 Menlo 切換過來,這絕對不讓人後悔。
在我的15寸的MacBook上,Ubuntu Mono的16號字非常適合。1680 × 1050的解析度對於一個邊欄加兩個編輯器視窗(自動調整到80個字元寬)剛好合適。
如果你打算認真的挑選一下字型, slant.co的這篇文章 寫的不錯。它包含了大部分流行的程式設計方面的字型的截圖及下載連結。
安裝外掛
正如之前提到的, Sublime 有一個非常豐富的外掛系統。而我當前使用的外掛如下:
- Package Control 在 Sublime 裡直接安裝附加外掛的包管理器。這是唯一一個你必須手動安裝的外掛。這邊列出的其他所有外掛都可以通過 Package Control 來安裝。也可以通過它來更新已安裝過的外掛。簡單得想做是 Sublime packages 的 apt-get 就行了。
- Color Scheme – Tomorrow Night Color schemes 決定了編輯器介面語法高亮的字型顏色。這是一個非常酷的暗黑系樣式。
- Theme – Soda Dark Themes 影響 Sublime 介面元素的顏色和風格。這個非常適合 Tomorrow Night 的配色方案。
- SideBarEnhancements 這個外掛提供了側邊欄附加的上下文選單選項,例如”New file”,”New Floder”等。這些本應當預設就該有的,卻沒有。
- All Autocomplete Sublime 預設的自動完成只關注當前檔案的單詞。這個外掛擴充套件了其自動完成的單詞列表到所有開啟的檔案。
- SublimeCodeIntel 為部分語言增強自動完成功能,包括了 Python 。這個外掛同時也可以讓你跳轉到符號定義的地方,通過按住 alt 並點選符號。非常方便。
- SublimeREPL 允許你在編輯介面直接執行 Python 直譯器。我傾向於在單獨的終端視窗用 bpython 來執行,但有時 SublimeREPL 是很有幫助的。
- GitGutter 在編輯器的凹槽區,依照 Git ,增加小圖示來標識一行是否被插入、修改或刪除。在 GitGutter 的 readme 中有說明如何更改顏色圖示來更新你的配色方案檔案。
- Pylinter 這個外掛提供了目前我所見到的最好的 pylint 編輯器整合。它自動檢查 .py 檔案,無論其何時被儲存,並且會直接在編輯介面顯示 pylint 違規。它還有一個快捷方式來禁用區域性的 pylint 檢查,通過插入一個 #pylint: 禁用註釋。這個外掛對於我確實非常有用。
配置檔案
Sublime Text 的一個優點就是它的所有配置都是簡單的基於 JSON 的配置檔案。這使得你可以很容易的將配置轉到另一個系統中。我也見過一些人使用 Dropbox 自動同步他們所有電腦上的配置。
Preferences.sublime-settings 配置了 Sublimede 的顯示和行為.你可以在sublime 中通過 Preferences > Settings — User 開啟並編輯此檔案。我使用如下配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
{ // Colors "color_scheme": "Packages/Tomorrow Color Schemes/Tomorrow-Night.tmTheme", "theme": "Soda Dark.sublime-theme", // Font "font_face": "Ubuntu Mono", "font_size": 16.0, "font_options": ["subpixel_antialias", "no_bold"], "line_padding_bottom": 0, "line_padding_top": 0, // Cursor style - no blinking and slightly wider than default "caret_style": "solid", "wide_caret": true, // Editor view look-and-feel "draw_white_space": "all", "fold_buttons": false, "highlight_line": true, "auto_complete": false, "show_minimap": false, // Editor behavior "scroll_past_end": false, "highlight_modified_tabs": true, "find_selected_text": true, // Word wrapping - follow PEP 8 recommendations "rulers": [ 72, 79 ], "word_wrap": true, "wrap_width": 80, // Whitespace - no tabs, trimming, end files with \n "tab_size": 4, "translate_tabs_to_spaces": true, "trim_trailing_white_space_on_save": true, "ensure_newline_at_eof_on_save": true, // Sidebar - exclude distracting files and folders "file_exclude_patterns": [ ".DS_Store", "*.pid", "*.pyc" ], "folder_exclude_patterns": [ ".git", "__pycache__", "env", "env3" ] } |
Pylinter.sublime-settings配置了pylinter 外掛。我使用下面的配置讓 Pyhton 在儲存時自動規範,並對違反規範顯示圖示。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{ // Configure pylint's behavior "pylint_rc": "/Users/daniel/dev/pylintrc", // Show different icons for errors, warnings, etc. "use_icons": true, // Automatically run Pylinter when saving a Python document "run_on_save": true, // Don't hide pylint messages when moving the cursor "message_stay": true } |
按鍵繫結
Sublime 的按鍵繫結也是全部可配置的基於JSON的 sublime-keymap 配置檔案。我修改了一些預設配置以更好的配合我的 TextMate / IntelliJ 肌肉記憶。你可以完全不修改。如果你想,修改很簡單,並可以跨平臺使用。我使用如下的繫結:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[ // Rebind "go to file" to cmd+shift+O { "keys": ["super+shift+o"], "command": "show_overlay", "args": { "overlay": "goto", "show_files": true }}, // Rebind swap line up/down to cmd+shift+up/down { "keys": ["super+shift+up"], "command": "swap_line_up" }, { "keys": ["super+shift+down"], "command": "swap_line_down" }, // Delete a line with cmd+delete { "keys": ["super+backspace"], "command": "run_macro_file", "args": { "file": "Packages/Default/Delete Line.sublime-macro" }}, // Reindent selection with cmd+alt+L { "keys": ["super+alt+l"], "command": "reindent"} ] |
命令列工具
同 TextMate 的 mate 類似,Sublime Text 包含了一個命令列工具,允許你通過 shell 開啟編輯器。工具名為 sublis,預設不可用。要使之生效,在任一 shell 中執行下面:
1 |
ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl |
要將 Sublime 作為 git 互動命令的預設編輯器使用——舉例,撰寫提交資訊——只需新增下面一行到你的 ~/.profile 檔案:
1 |
export GIT_EDITOR="subl --wait --new-window" |
更多靈感
我希望這篇安裝指南能夠幫到你。如果你有任何建議或意見,敬請 Twitter 我一行或給我發郵件。另外,感謝下面的作者及其關於配置 sublime 的作品。它們啟發了我很多: