[工具] Sublime Text 使用指南

http://bbs.it-home.org/thread-46291-1-1.htmlhtml

摘要(Abstract)

更新記錄java

    • 更正打開控制檯的快捷鍵爲Ctrl + `
    • 更正全局替換的快捷鍵爲Ctrl + Alt + Enter

前言(Prologue)

編輯器的選擇(Editor Choices)程序員

 

  • 跨平臺:Vim和Sublime Text均爲跨平臺編輯器(在Linux、OS X和Windows下都可使用)。做爲一個程序員,切換系統是常有的事情,爲了減小重複學習,使用一個跨平臺的編輯器是頗有必要的。
  • 可擴展:Vim和Sublime Text都是可擴展的(Extensible),幷包含大量實用插件,咱們能夠經過安裝本身領域的插件來成倍提升工做效率。
  • 互補:Vim和Sublime Text分別是命令行環境(CLI)和圖形界面環境(GUI)下的最佳選擇,同時使用二者會大大提升工做效率。

我是一名很是典型的程序員:平時工做主要在Linux環境下使用Java和Python,偶爾會用HTML+CSS+JavaScript編寫網頁;業餘時會在Windows環境編寫一些C#程序(包括控制檯程序(Console Application)和移動應用(Mobile App),也會玩一些非主流語言(好比Haskell,ML和Ruby等)以拓展見識。

 

本文風格(Writing Style)正則表達式

受益於K&R C的寫做風格,我傾向於以實際案例來說解Sublime Text的功能,因此本文中的例子均源於我在實際開發時遇到的問題。swift

編輯器(Editor) vs 集成開發環境(Integrated Development Environment,下文簡稱IDE)sublime-text

 

  • 編輯器面向無語義的純文本,不涉及領域邏輯,所以速度快體積小,適合編寫單獨的配置文件和動態語言腳本(Shell、Python和Ruby等)。
  • IDE面向有語義的代碼,會涉及到大量領域邏輯,所以速度偏慢體積龐大,適合編寫靜態語言項目(Java、C++和C#等)。

前言到此結束,下面進入正題。編輯器

安裝(Installation)

注意在安裝時勾選Add to explorer context menu,這樣在右鍵單擊文件時就能夠直接使用Sublime Text打開。ide

添加Sublime Text到環境變量函數

Win + R運行sysdm.cpl打開「系統屬性」。學習

而後在「高級」選項卡里選擇「環境變量」,編輯「Path」,增長Sublime Text的安裝目錄(例如D:\Program Files\Sublime Text 3)。

接下來你就能夠在命令行裏面利用subl命令直接使用Sublime Text了:

1
2 3 [/code] 
[/code]
subl file :: 使用Sublime Text打開file文件 subl folder :: 使用Sublime Text打開folder文件夾 subl . :: 使用Sublime Text當前文件夾

前文提到Sublime Text支持大量插件,如何找到並管理這些插件就成了一個問題,Package Control正是爲了解決這個問題而出現的,利用它咱們能夠很方便的瀏覽、安裝和卸載Sublime Text中的插件。

 

 

  • 使用Ctrl + `打開Sublime Text控制檯。
  • 將下面的代碼粘貼到控制檯裏:
1
[/code]
[/code]
import urllib.request,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
      等待Package Control安裝完成。以後使用

Ctrl + Shift + P

      打開命令板,輸入

PC

    應出現Package Control:

成功安裝Package Control以後,咱們就能夠方便的安裝使用Sublime Text的各類插件:

購買(Purchase)

Sublime Text是一個收費閉源軟件,這在必定程度上成爲了我支持Sublime Text的理由(我心中的軟件靠譜程度:免費開源 << 免費閉源 < 收費開源 < 收費閉源):在這裏購買。

(UNREGISTERED)。(在高頻操做下,通常20分鐘提示一次,我的認爲算是很厚道了)

也許很多人會覺着Sublime Text 70刀的價格太貴,但相比它的功能和帶來的效率提高,70刀真的不值一提,若是你不方便使用Paypal付款能夠郵件聯繫我,你支付寶給我打款而後我幫你付款,價格按當日匯率折算(450元左右)。

概覽(Tour)

Sublime Text的界面以下:

 

 

  • 標籤(Tab):無需介紹。
  • 編輯區(Editing Area):無需介紹。
  • 側欄(Side Bar):包含當前打開的文件以及文件夾視圖。
  • 縮略圖(Minimap):如其名。
  • 命令板(Command Palette):Sublime Text的操做中心,它使得咱們基本能夠脫離鼠標和菜單欄進行操做。
  • 控制檯(Console):使用Ctrl + `調出,它既是一個標準的Python REPL,也能夠直接對Sublime Text進行配置。
  • 狀態欄(Status Bar):顯示當前行號、當前語言和Tab格式等信息。

與其餘GUI環境下的編輯器不一樣,Sublime Text並無一個專門的配置界面,與之相反,Sublime Text使用JSON配置文件,例如:

 

1
2 3 4 [/code] 
[/code]
{  "font_size": 12,  "highlight_line": true, }

JSON配置文件的引入簡化了Sublime Text的界面,但也使得配置變的複雜,通常我會到這裏查看可用的Sublime Text配置。

編輯(Editing)

基本編輯(Basic Editing)

↑↓←→就是↑↓←→,不是KJHL,(沒錯我就是在吐槽Vim,尼瑪設成WSAD也比這個強啊),粘貼剪切複製均和系統一致。

Ctrl + Enter在當前行下面新增一行而後跳至該行;Ctrl + Shift + Enter在當前行上面增長一行並跳至該行。

Ctrl + ←/→進行逐詞移動,相應的,Ctrl + Shift + ←/→進行逐詞選擇。

Ctrl + ↑/↓移動當前顯示區域,Ctrl + Shift + ↑/↓移動當前行。

選擇(Selecting)

Ctrl + D選擇當前光標所在的詞並高亮該詞全部出現的位置,再次Ctrl + D選擇該詞出現的下一個位置,在多重選詞的過程當中,使用Ctrl + K進行跳過,使用Ctrl + U進行回退,使用Esc退出多重編輯。

利用多重選詞進行重命名

Ctrl + Shift + L能夠將當前選中區域打散,而後進行同時編輯:

有打散天然就有合併,Ctrl + J能夠把當前選中區域合併爲一行:

查找&替換(Finding&Replacing)

快速查找、標準查找和多文件查找三種類型。

快速查找&替換

Shift + ←/→或Ctrl + D選中關鍵字,而後F3跳到其下一個出現位置,Shift + F3跳到其上一個出現位置,此外還能夠用Alt + F3選中其出現的全部位置(以後能夠進行多重編輯,也就是快速替換)。

標準查找&替換

Ctrl + F調出搜索框進行搜索:

以及使用Ctrl + H進行替換:

關鍵字查找&替換

Enter跳相當鍵字當前光標的下一個位置,Shift + Enter跳至上一個位置,Alt + Enter選中其出現的全部位置(一樣的,接下來能夠進行快速替換)。

Alt + C切換大小寫敏感(Case-sensitive)模式,Alt + W切換整字匹配(Whole matching)模式,除此以外Sublime Text還支持在選中範圍內搜索(Search in selection),這個功能沒有對應的快捷鍵,但能夠經過如下配置項自動開啓。

1
[/code]
[/code]
"auto_find_in_selection": true

使用範圍搜索進行局部重命名

Ctrl + H進行標準替換,輸入替換內容後,使用Ctrl + Shift + H替換當前關鍵字,Ctrl + Alt + Enter替換全部匹配關鍵字。

正則表達式查找&替換

Alt + R切換正則匹配模式的開啓/關閉。Sublime Text的使用Boost裏的Perl正則表達式風格。

多文件搜索&替換

Ctrl + Shift + F開啓多文件搜索&替換(注意此快捷鍵和搜狗輸入法的簡繁切換快捷鍵有衝突):

多文件搜索&替換默認在當前打開的文件和文件夾進行搜索/替換,咱們也能夠指定文件/文件夾進行搜索/替換。

Sublime Text提供了強大的跳轉功能使得咱們能夠在不一樣的文件/方法/函數中無縫切換。就個人使用經驗而言,目前尚未哪一款編輯器能夠在這個方面超越Sublime Text。

 

Ctrl + P會列出當前打開的文件(或者是當前文件夾的文件),輸入文件名而後Enter跳轉至該文件。

 

EIS、EclipStupid均可以匹配EclipseIsStupid.java

跳轉到符號

Ctrl + R會列出當前文件中的符號(例如類名和函數名,但沒法深刻到變量名),輸入符號名稱Enter便可以跳轉到該處。此外,還可使用F12快速跳轉到當前光標所在符號的定義處(Jump to Definition)。

比較有意思的是,對於Markdown,Ctrl + R會列出其大綱,很是實用。

跳轉到某行

Ctrl + G而後輸入行號以跳轉到指定行:

組合跳轉

Ctrl + P匹配到文件後,咱們能夠進行後續輸入以跳轉到更精確的位置:

@

      符號跳轉:輸入

@symbol

      跳轉到

symbol

    符號所在的位置
  • # 關鍵字跳轉:輸入#keyword跳轉到keyword所在的位置
  • : 行號跳轉:輸入:12跳轉到文件的第12行。

因此Sublime Text把Ctrl + P稱之爲「Go To Anything」,這個功能如此好用,以致於我認爲沒有其它編輯器可以超越它。

從Sublime Text的第一版(1.0)到如今(3.0 3065),中文輸入法(包括日文輸入法)都有一個問題:輸入框不跟隨。

 

目前官方尚未修復這個bug,解決方法是安裝IMESupport插件,以後重啓Sublime Text問題就解決了。

文件夾(Folders)

File下Open Folder

你會發現右邊多了一個側欄,這個側欄列出了當前打開的文件和文件夾的文件,使用Ctrl + K, Ctrl + B顯示或隱藏側欄,使用Ctrl + P快速跳轉到文件夾裏的文件。

窗口&標籤(Windows & Tabs)

窗口(Window)

Ctrl + Shift + N建立一個新窗口(該快捷鍵再次和搜狗輸入法快捷鍵衝突,我的建議禁用全部搜狗輸入法快捷鍵)。

Ctrl + W關閉該窗口。

使用Ctrl + N在當前窗口建立一個新標籤,Ctrl + W關閉當前標籤,Ctrl + Shift + T恢復剛剛關閉的標籤。

 

Alt + Shift + 2進行左右分屏,Alt + Shift + 8進行上下分屏,Alt + Shift + 5進行上下左右分屏(即分爲四屏)。

分屏以後,使用Ctrl + 數字鍵跳轉到指定屏,使用Ctrl + Shift + 數字鍵將當前屏移動到指定屏。例如,Ctrl + 1會跳轉到1屏,而Ctrl + Shift + 2會將當前屏移動到2屏。

Sublime Text有兩種全屏模式:普通全屏和無干擾全屏。

 

F11切換普通全屏:

Shift + F11切換無干擾全屏:

風格(Styles)

Notepad++默認界面

Sublime Text默認界面

因此在用過Sublime Text以後,我馬上就卸掉了Notepad++。

Monokai Bright,這二者的搭配已經很不錯了,不過咱們還能夠作得更好:接下來我將會展現如何經過設置偏好項和添加自定義風格/主題使得Sublime Text更加Stylish。

下面是我我的使用的設置項。

 

1
2 3 4 5 6 7 8 9 [/code] 
[/code]
// 設置Sans-serif(無襯線)等寬字體,以便閱讀 "font_face": "YaHei Consolas Hybrid", "font_size": 12, // 使光標閃動更加柔和 "caret_style": "phase", // 高亮當前行 "highlight_line": true, // 高亮有修改的標籤 "highlight_modified_tabs": true,

設置效果

Sublime Text有大量第三方主題:[https://sublime.wbond.net/browse/labels/theme],這裏我給出幾個我的感受不錯的主題:

 

淺色版

 

深色版

 

Nexus

 

Flatland

 

淺色版

 

深色版

 

colorsublime包含了大量Sublime Text配色方案,並支持在線預覽,配色方案的安裝教程在這裏,恕不贅述。

 

 

1
2 [/code] 
[/code]
"theme": "Nexus.sublime-theme", "color_scheme": "Packages/Theme - Flatland/Flatland Dark.tmTheme",

Nexus+Flatland

編碼(Coding)

良好實踐(Good Practices)

 

1
2 3 4 5 6 7 8 9 10 11 12 [/code] 
[/code]
// 設置tab的大小爲2 "tab_size": 2, // 使用空格代替tab "translate_tabs_to_spaces": true, // 添加行寬標尺 "rulers": [80, 100], // 顯示空白字符 "draw_white_space": "all", // 保存時自動去除行末空白 "trim_trailing_white_space_on_save": true, // 保存時自動增長文件末尾換行 "ensure_newline_at_eof_on_save": true,

Sublime Text支持代碼段(Code Snippet),輸入代碼段名稱後Tab便可生成代碼段。

 

你能夠經過Package Control安裝第三方代碼段,也能夠本身建立代碼段,參考這裏。

Sublime Text基本的手動格式化操做包括:Ctrl + [向左縮進,Ctrl + ]向右縮進,此外Ctrl + Shift + V能夠以當前縮進粘貼代碼(很是實用)。

 

 

  • HTMLBeautify:格式化HTML。
  • AutoPEP8:格式化Python代碼。
  • Alignment:進行智能對齊。

Sublime Text 支持必定的自動完成,按Tab自動補全。

 

括號(Brackets)

Ctrl + M能夠快速的在起始括號和結尾括號間切換,Ctrl + Shift + M則能夠快速選擇括號間的內容,對於縮進型語言(例如Python)則可使用Ctrl + Shift + J

此外,我使用BracketHighlighter插件以高亮顯示配對括號以及當前光標所在區域,效果以下:

命令行(Command Line)

SublimeREPL演示

其它(Miscellaneous)

下面是一些可能有用但我不多用到的功能:

    宏(Macro):Sublime Text支持錄製宏,但我在實際工做中並未發現宏有多大用處。
  • 其它平臺(Other Platforms):本文只介紹了Windows平臺上Sublime Text的使用,不過Linux和OS X上Sublime Text的使用方式和Windows差異不大,只是在快捷鍵上有所差別,請參考Windows/Linux快捷鍵和OS X快捷鍵。
  • 項目(Projects):Sublime Text支持簡單的項目管理,但我通常只用到文件夾。
  • Vim模式(Vintage):Sublime Text自帶Vim模式。
  • 構建(Build):經過配置,Sublime Text能夠進行源碼構建。
  • 調試(Debug):經過安裝插件,Sublime Text能夠對代碼進行調試。

快捷鍵列表(Shortcuts Cheatsheet)

通用(General)

↑↓←→

      :上下左右移動光標,注意不是否是

KJHL

  • Alt:調出菜單
  • Ctrl + Shift + P:調出命令板(Command Palette)
  • Ctrl + `:調出控制檯
  • Ctrl + Enter:在當前行下面新增一行而後跳至該行
  • Ctrl + Shift + Enter:在當前行上面增長一行並跳至該行
  • Ctrl + ←/→:進行逐詞移動
  • Ctrl + Shift + ←/→進行逐詞選擇
  • Ctrl + ↑/↓移動當前顯示區域
  • Ctrl + Shift + ↑/↓移動當前行
  • Ctrl + D:選擇當前光標所在的詞並高亮該詞全部出現的位置,再次Ctrl + D選擇該詞出現的下一個位置,在多重選詞的過程當中,使用Ctrl + K進行跳過,使用Ctrl + U進行回退,使用Esc退出多重編輯
  • Ctrl + Shift + L:將當前選中區域打散
  • Ctrl + J:把當前選中區域合併爲一行
  • Ctrl + M:在起始括號和結尾括號間切換
  • Ctrl + Shift + M:快速選擇括號間的內容
  • Ctrl + Shift + J:快速選擇同縮進的內容
  • Ctrl + Shift + Space:快速選擇當前做用域(Scope)的內容

查找&替換(Finding&Replacing)

F3

    :跳至當前關鍵字下一個位置
  • Shift + F3:跳到當前關鍵字上一個位置
  • Alt + F3:選中當前關鍵字出現的全部位置
  • Ctrl + F/H:進行標準查找/替換,以後:
    • Alt + C:切換大小寫敏感(Case-sensitive)模式
    • Alt + W:切換整字匹配(Whole matching)模式
    • Alt + R:切換正則匹配(Regex matching)模式
    • Ctrl + Shift + H:替換當前關鍵字
    • Ctrl + Alt + Enter:替換全部關鍵字匹配
  • Ctrl + Shift + F:多文件搜索&替換
  • Ctrl + P:跳轉到指定文件,輸入文件名後能夠:
    • @ 符號跳轉:輸入@symbol跳轉到symbol符號所在的位置
    • # 關鍵字跳轉:輸入#keyword跳轉到keyword所在的位置
    • : 行號跳轉:輸入:12跳轉到文件的第12行。
  • Ctrl + R:跳轉到指定符號
  • Ctrl + G:跳轉到指定行號
  • Ctrl + Shift + N:建立一個新窗口
  • Ctrl + N:在當前窗口建立一個新標籤
  • Ctrl + W:關閉當前標籤,當窗口內沒有標籤時會關閉該窗口
  • Ctrl + Shift + T:恢復剛剛關閉的標籤
  • F11:切換普通全屏
  • Shift + F11:切換無干擾全屏
  • Alt + Shift + 2:進行左右分屏
  • Alt + Shift + 8:進行上下分屏
  • Alt + Shift + 5:進行上下左右分屏
  • 分屏以後,使用Ctrl + 數字鍵跳轉到指定屏,使用Ctrl + Shift + 數字鍵將當前屏移動到指定屏

延伸閱讀(Further Reading)

  • Mastering Sublime Text:我讀過的惟一一本關於Sublime Text的書籍,書中介紹的插件很實用,但對編輯技巧介紹不全。
  • Instant Sublime Text Starter:另一本關於Sublime Text的書,我沒有讀過。
  • 官方文檔:http://www.sublimetext.com/docs/3/
  • 官方論壇:http://www.sublimetext.com/forum/
  • Stack Overflow的Sublime Text頻道:
    • http://stackoverflow.com/questions/tagged/sublimetext
    • http://stackoverflow.com/questions/tagged/sublimetext2
    • http://stackoverflow.com/questions/tagged/sublimetext3
  • 非官方文檔:http://sublime-text-unofficial-documentation.readthedocs.org/ 甚至比官方文檔還要全面!
  • Package Control:https://sublime.wbond.net/ 大量的Sublime Text插件和主題。
  • Getting Started with SublimeText:https://www.youtube.com/watch?v=04gKiTiRlq8
  • Sublime Text Pefect Workflow:https://www.youtube.com/watch?v=bpEp0ePIOEM&list=PLuwqxbvf3olpLsnFvo06gbrkcEB5o7K0g
相關文章
相關標籤/搜索