卸載Notepad++!事實(shí)已證明,它更牛逼……
作者:lucida*
lucida.me/blog/sublime-text-complete-guide/
摘要(Abstract)
本文系統(tǒng)全面的介紹了 Sublime Text,旨在成為最優(yōu)秀的 Sublime Text 中文教程。
前言(Prologue)
Sublime Text 是一款跨平臺代碼編輯器(Code Editor),從最初的 Sublime Text 1.0,到現(xiàn)在的 Sublime Text 3.0,Sublime Text 從一個(gè)不知名的編輯器演變到現(xiàn)在幾乎是各平臺首選的 GUI 編輯器。而這樣優(yōu)秀的編輯器卻沒有一個(gè)靠譜的中文教程,所以我試圖通過本文彌補(bǔ)這個(gè)缺陷。
編輯器的選擇(Editor Choices)
從初學(xué)編程到現(xiàn)在,我用過的編輯器有 EditPlus、UltraEdit、Notepad++、Vim、TextMate 和 Sublime Text,如果讓我從中推薦,我會毫不猶豫的推薦 Vim 和 Sublime Text,原因有下面幾點(diǎn):
-
跨平臺:Vim 和 Sublime Text 均為跨平臺編輯器(在 Linux、OS X 和 Windows 下均可使用)。作為一個(gè)程序員,切換系統(tǒng)是常有的事情,為了減少重復(fù)學(xué)習(xí),使用一個(gè)跨平臺的編輯器是很有必要的。 -
可擴(kuò)展:Vim 和 Sublime Text 都是可擴(kuò)展的(Extensible),并包含大量實(shí)用插件,我們可以通過安裝自己領(lǐng)域的插件來成倍提高工作效率。 -
互補(bǔ):Vim 和 Sublime Text 分別是命令行環(huán)境(CLI)和圖形界面環(huán)境(GUI)下的最佳選擇,同時(shí)使用兩者會大大提高工作效率。
個(gè)人背景(Personal Background)
我是一名非常典型的程序員:平時(shí)工作主要在 Linux 環(huán)境下使用 Java 和 Python,偶爾會用 HTML+CSS+JavaScript 編寫網(wǎng)頁;業(yè)余時(shí)會在 Windows 環(huán)境編寫一些 C# 程序(包括控制臺程序(Console Application)和移動(dòng)應(yīng)用(Mobile App),也會玩一些非主流語言(比如 Haskell,ML 和 Ruby 等)以拓展見識。
所以這篇文章會我的個(gè)人工作內(nèi)容為主要使用場景(Scenario),盡管無法覆蓋到所有的使用場景,但我認(rèn)為依然可以覆蓋到絕大部分,如果您認(rèn)為我遺漏了什么內(nèi)容,請?jiān)谖恼孪旅婊貜?fù),我會盡量更新。
本文風(fēng)格(Writing Style)
受益于 K&R C 的寫作風(fēng)格,我傾向于以實(shí)際案例來講解 Sublime Text 的功能,所以本文中的例子均源于我在實(shí)際開發(fā)時(shí)遇到的問題。
此外,把本文會使用大量動(dòng)畫(GIF)演示 Sublime Text 的編輯功能,因?yàn)槲野l(fā)現(xiàn)圖片難以演示完整的編輯流程(Workflow),而視頻又過于重量級。本文的GIF動(dòng)畫均使用 ScreenToGif 進(jìn)行錄制。
編輯器(Editor) vs 集成開發(fā)環(huán)境(Integrated Development Environment,下文簡稱 IDE)
我經(jīng)??吹揭恍┏绦騿T拿編輯器和 IDE 進(jìn)行比較,諸如 Vim 比 Eclipse 強(qiáng)大或是 Visual Studio 太慢不如 Notepad++ 好使之類的討論比比皆是,個(gè)人認(rèn)為這些討論沒有意義,因?yàn)榫庉嬈骱?IDE 根本是面向兩種不同使用場景的工具:
-
編輯器面向無語義的純文本,不涉及領(lǐng)域邏輯,因此速度快體積小,適合編寫單獨(dú)的配置文件和動(dòng)態(tài)語言腳本(Shell、Python 和 Ruby 等)。 -
IDE 面向有語義的代碼,會涉及到大量領(lǐng)域邏輯,因此速度偏慢體積龐大,適合編寫靜態(tài)語言項(xiàng)目(Java、C++ 和 C# 等)。
我認(rèn)為應(yīng)當(dāng)使用正確的工具去做有價(jià)值的事情,并把效率最大化,所以我會用 Eclipse 編寫 Java 項(xiàng)目,用 Vim 編寫Shell,用 Sublime Text 編寫 JavaScript/HTML/Python,用 Visual Studio 編寫C#。
前言到此結(jié)束,下面進(jìn)入正題。
安裝(Installation)
Sublime Text 官方網(wǎng)站 提供了 Sublime Text 各系統(tǒng)各版本的下載,目前Sublime Text 的最新版本是 Sublime Text 3。這里以 Windows 版本的 Sublime Text 安裝為例。
注意在安裝時(shí)勾選 Add to explorer context menu,這樣在右鍵單擊文件時(shí)就可以直接使用 Sublime Text 打開。
右鍵打開
添加 Sublime Text 到環(huán)境變量
使用 Win + R
運(yùn)行 sysdm.cpl
打開 “系統(tǒng)屬性”。
sysdm.cpl
然后在 “高級” 選項(xiàng)卡里選擇 “環(huán)境變量”,編輯 “Path”,增加 Sublime Text 的安裝目錄(例如 D:\Program Files\Sublime Text 3
)。
添加環(huán)境變量
接下來你就可以在命令行里面利用 subl
命令直接使用 Sublime Text 了:
subl file :: 使用 Sublime Text 打開 file 文件
subl folder :: 使用 Sublime Text 打開 folder 文件夾
subl . :: 使用 Sublime Text 當(dāng)前文件夾
安裝 Package Control
前文提到 Sublime Text 支持大量插件,如何找到并管理這些插件就成了一個(gè)問題,Package Control 正是為了解決這個(gè)問題而出現(xiàn)的,利用它我們可以很方便的瀏覽、安裝和卸載 Sublime Text 中的插件。
進(jìn)入 Package Control 的 官網(wǎng),里面有詳細(xì)的 安裝教程。Package Control 支持 Sublime Text 2 和 3,本文只給出 3 的安裝流程:
-
使用 `Ctrl + ``打開 Sublime Text 控制臺。 -
將下面的代碼粘貼到控制臺里:
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
應(yīng)出現(xiàn) Package Control:
Package Control 安裝成功
成功安裝 Package Control 之后,我們就可以方便的安裝使用 Sublime Text 的各種插件:
使用 Package Control 安裝插件
購買(Purchase)
Sublime Text 是一個(gè)收費(fèi)閉源軟件,這在一定程度上成為了我支持 Sublime Text 的理由(我心中的軟件靠譜程度:免費(fèi)開源 << 免費(fèi)閉源 < 收費(fèi)開源 < 收費(fèi)閉源):在 https://www.sublimetext.com/buy
購買。
不過不購買 Sublime Text 也可以 “正?!?使用它,只是 Sublime Text 會時(shí)不時(shí)的彈出一個(gè)對話框提醒你購買,此外窗口處會有一個(gè)很屌絲很 low 逼的 (UNREGISTERED)。(在高頻操作下,一般 20 分鐘提示一次,個(gè)人認(rèn)為算是很厚道了)
也許不少人會覺著 Sublime Text 70 刀的價(jià)格太貴,但相比它的功能和帶來的效率提升,70 刀真的不值一提。
概覽(Tour)
基本概念(Basic Concepts)
Sublime Text 的界面如下:
Sublime Text
-
標(biāo)簽(Tab):無需介紹。 -
編輯區(qū)(Editing Area):無需介紹。 -
側(cè)欄(Side Bar):包含當(dāng)前打開的文件以及文件夾視圖。 -
縮略圖(Minimap):如其名。 -
命令板(Command Palette):Sublime Text 的操作中心,它使得我們基本可以脫離鼠標(biāo)和菜單欄進(jìn)行操作。 -
控制臺(Console):使用 `Ctrl + ``調(diào)出,它既是一個(gè)標(biāo)準(zhǔn)的 Python REPL,也可以直接對 Sublime Text 進(jìn)行配置。 -
狀態(tài)欄(Status Bar):顯示當(dāng)前行號、當(dāng)前語言和Tab格式等信息。
配置(Settings)
與其他 GUI 環(huán)境下的編輯器不同,Sublime Text 并沒有一個(gè)專門的配置界面,與之相反,Sublime Text 使用 JSON 配置文件,例如:
{
"font_size": 12,
"highlight_line": true,
}
會將默認(rèn)字體大小調(diào)整為 12,并高亮當(dāng)前行。
JSON 配置文件的引入簡化了 Sublime Text 的界面,但也使得配置變的復(fù)雜,一般我會到 這里 查看可用的 Sublime Text 配置。
搜索Java知音公眾號,回復(fù)“后端面試”,送你一份Java面試題寶典.pdf
編輯(Editing)
Sublime Text 的編輯十分人性化——它不像 Vim 那樣反人類(盡管我也用 Vim 但我還是要說 Vim 的快捷鍵設(shè)定絕壁連代謝產(chǎn)物都不如),少量的快捷鍵就可以完成絕大多數(shù)編輯任務(wù)。
基本編輯(Basic Editing)
↑↓←→
就是 ↑↓←→
,不是 KJHL
,(沒錯(cuò)我就是在吐槽 Vim,尼瑪設(shè)成 WSAD
也比這個(gè)強(qiáng)啊),粘貼剪切復(fù)制均和系統(tǒng)一致。
Ctrl + Enter
在當(dāng)前行下面新增一行然后跳至該行;Ctrl + Shift + Enter
在當(dāng)前行上面增加一行并跳至該行。
演示新增行
Ctrl + ←/→
進(jìn)行逐詞移動(dòng),相應(yīng)的,Ctrl + Shift + ←/→
進(jìn)行逐詞選擇。
演示逐詞移動(dòng)及選擇
Ctrl + ↑/↓
移動(dòng)當(dāng)前顯示區(qū)域,Ctrl + Shift + ↑/↓
移動(dòng)當(dāng)前行。
演示移動(dòng)當(dāng)前行
選擇(Selecting)
Sublime Text 的一大亮點(diǎn)是支持多重選擇——同時(shí)選擇多個(gè)區(qū)域,然后同時(shí)進(jìn)行編輯。
Ctrl + D
選擇當(dāng)前光標(biāo)所在的詞并高亮該詞所有出現(xiàn)的位置,再次 Ctrl + D
選擇該詞出現(xiàn)的下一個(gè)位置,在多重選詞的過程中,使用 Ctrl + K
進(jìn)行跳過,使用 Ctrl + U
進(jìn)行回退,使用 Esc
退出多重編輯。
多重選詞的一大應(yīng)用場景就是重命名——從而使得代碼更加整潔。盡管 Sublime Text 無法像 IDE(例如 Eclipse)那樣進(jìn)行自動(dòng)重命名,但我們可以通過多重選詞+多重編輯進(jìn)行直觀且便捷的重命名:
利用多重選詞進(jìn)行重命名
有時(shí)我們需要對一片區(qū)域的所有行進(jìn)行同時(shí)編輯,Ctrl + Shift + L
可以將當(dāng)前選中區(qū)域打散,然后進(jìn)行同時(shí)編輯:
利用打散為列表套上引號
有打散自然就有合并,Ctrl + J
可以把當(dāng)前選中區(qū)域合并為一行:
合并選中行
查找&替換(Finding&Replacing)
Sublime Text 提供了強(qiáng)大的查找(和替換)功能,為了提供一個(gè)清晰的介紹,我將 Sublime Text 的查找功能分為 快速查找、標(biāo)準(zhǔn)查找 和 多文件查找 三種類型。
快速查找&替換
多數(shù)情況下,我們需要查找文中某個(gè)關(guān)鍵字出現(xiàn)的其它位置,這時(shí)并不需要重新將該關(guān)鍵字重新輸入一遍然后搜索,我們只需要使用 Shift + ←/→
或 Ctrl + D
選中關(guān)鍵字,然后 F3
跳到其下一個(gè)出現(xiàn)位置, Shift + F3
跳到其上一個(gè)出現(xiàn)位置,此外還可以用 Alt + F3
選中其出現(xiàn)的所有位置(之后可以進(jìn)行多重編輯,也就是快速替換)。
使用快速替換
標(biāo)準(zhǔn)查找&替換
另一種常見的使用場景是搜索某個(gè)已知但不在當(dāng)前顯示區(qū)域的關(guān)鍵字,這時(shí)可以使用 Ctrl + F
調(diào)出搜索框進(jìn)行搜索:
Sublime Text的搜索框
以及使用 Ctrl + H
進(jìn)行替換:
Sublime Text的替換框
關(guān)鍵字查找&替換
對于普通用戶來說,常規(guī)的關(guān)鍵字搜索就可以滿足其需求:在搜索框輸入關(guān)鍵字后 Enter
跳至關(guān)鍵字當(dāng)前光標(biāo)的下一個(gè)位置, Shift + Enter
跳至上一個(gè)位置, Alt + Enter
選中其出現(xiàn)的所有位置(同樣的,接下來可以進(jìn)行快速替換)。
Sublime Text 的查找有不同的模式:Alt + C
切換大小寫敏感(Case-sensitive)模式, Alt + W
切換整字匹配(Whole matching)模式,除此之外Sublime Text還支持在選中范圍內(nèi)搜索(Search in selection),這個(gè)功能沒有對應(yīng)的快捷鍵,但可以通過以下配置項(xiàng)自動(dòng)開啟。
"auto_find_in_selection": true
這樣之后在選中文本的狀態(tài)下范圍內(nèi)搜索就會自動(dòng)開啟,配合這個(gè)功能,局部重命名(Local Renaming)變的非常方便:
使用范圍搜索進(jìn)行局部重命名
使用 Ctrl + H
進(jìn)行標(biāo)準(zhǔn)替換,輸入替換內(nèi)容后,使用 Ctrl + Shift + H
替換當(dāng)前關(guān)鍵字, Ctrl + Alt + Enter
替換所有匹配關(guān)鍵字。
正則表達(dá)式查找&替換
正則表達(dá)式 是非常強(qiáng)大的文本查找&替換工具,Sublime Text中使用 Alt + R
切換正則匹配模式的開啟/關(guān)閉。Sublime Text的使用Boost里的Perl正則表達(dá)式風(fēng)格。
出于篇幅原因,本文不會對正則表達(dá)式進(jìn)行詳細(xì)介紹,Mastering Regex(中譯本:精通正則表達(dá)式)對正則表達(dá)式的原理和各語言下的使用進(jìn)行了詳細(xì)介紹。此外網(wǎng)上有大量正則表達(dá)式的優(yōu)秀教程(“正則表達(dá)式30分鐘入門教程” 和 MSDN正則表達(dá)式教程),以及在線測試工具(regexpal 和 regexer)。
搜索Java知音公眾號,回復(fù)“后端面試”,送你一份Java面試題寶典.pdf
多文件搜索&替換
使用 Ctrl + Shift + F
開啟多文件搜索&替換(注意此快捷鍵和搜狗輸入法的簡繁切換快捷鍵有沖突):
多文件搜索界面
多文件搜索&替換默認(rèn)在當(dāng)前打開的文件和文件夾進(jìn)行搜索/替換,我們也可以指定文件/文件夾進(jìn)行搜索/替換。
跳轉(zhuǎn)(Jumping)
Sublime Text 提供了強(qiáng)大的跳轉(zhuǎn)功能使得我們可以在不同的文件/方法/函數(shù)中無縫切換。就我的使用經(jīng)驗(yàn)而言,目前還沒有哪一款編輯器可以在這個(gè)方面超越Sublime Text。
跳轉(zhuǎn)到文件
Ctrl + P
會列出當(dāng)前打開的文件(或者是當(dāng)前文件夾的文件),輸入文件名然后 Enter
跳轉(zhuǎn)至該文件。
需要注意的是,Sublime Text使用模糊字符串匹配(Fuzzy String Matching),這也就意味著你可以通過文件名的前綴、首字母或是某部分進(jìn)行匹配:例如, EIS
、 Eclip
和 Stupid
都可以匹配 EclipseIsStupid.java
。
跳轉(zhuǎn)到文件
跳轉(zhuǎn)到符號
盡管是一個(gè)文本編輯器,Sublime Text 能夠?qū)Υa符號進(jìn)行一定程度的索引。Ctrl + R
會列出當(dāng)前文件中的符號(例如類名和函數(shù)名,但無法深入到變量名),輸入符號名稱 Enter
即可以跳轉(zhuǎn)到該處。此外,還可以使用 F12
快速跳轉(zhuǎn)到當(dāng)前光標(biāo)所在符號的定義處(Jump to Definition)。
跳轉(zhuǎn)到符號
比較有意思的是,對于 Markdown, Ctrl + R
會列出其大綱,非常實(shí)用。
Markdown大綱
跳轉(zhuǎn)到某行
Ctrl + G
然后輸入行號以跳轉(zhuǎn)到指定行:
跳轉(zhuǎn)到某行
組合跳轉(zhuǎn)
在 Ctrl + P
匹配到文件后,我們可以進(jìn)行后續(xù)輸入以跳轉(zhuǎn)到更精確的位置:
-
@
符號跳轉(zhuǎn):輸入@symbol
跳轉(zhuǎn)到symbol
符號所在的位置 -
#
關(guān)鍵字跳轉(zhuǎn):輸入#keyword
跳轉(zhuǎn)到keyword
所在的位置 -
:
行號跳轉(zhuǎn):輸入:12
跳轉(zhuǎn)到文件的第12行。
組合跳轉(zhuǎn)演示
所以 Sublime Text 把 Ctrl + P
稱之為 “Go To Anything”,這個(gè)功能如此好用,以至于我認(rèn)為沒有其它編輯器能夠超越它。
中文輸入法的問題
從 Sublime Text 的初版(1.0)到現(xiàn)在(3.0 3065),中文輸入法(包括日文輸入法)都有一個(gè)問題:輸入框不跟隨。
輸入框不跟隨
目前官方還沒有修復(fù)這個(gè) bug,解決方法是安裝 IMESupport
插件,之后重啟 Sublime Text 問題就解決了。
修復(fù)之后輸入框跟隨
文件夾(Folders)
Sublime Text 支持以文件夾做為單位進(jìn)行編輯,這在編輯一個(gè)文件夾下的代碼時(shí)尤其有用。在 File
下 Open Folder
:
文件夾視圖
你會發(fā)現(xiàn)右邊多了一個(gè)側(cè)欄,這個(gè)側(cè)欄列出了當(dāng)前打開的文件和文件夾的文件,使用 Ctrl + K, Ctrl + B
顯示或隱藏側(cè)欄,使用 Ctrl + P
快速跳轉(zhuǎn)到文件夾里的文件。
窗口&標(biāo)簽(Windows & Tabs)
Sublime Text 是一個(gè)多窗口多標(biāo)簽編輯器:我們既可以開多個(gè)Sublime Text窗口,也可以在一個(gè)Sublime Text窗口內(nèi)開多個(gè)標(biāo)簽。
窗口(Window)
使用 Ctrl + Shift + N
創(chuàng)建一個(gè)新窗口(該快捷鍵再次和搜狗輸入法快捷鍵沖突,個(gè)人建議禁用所有搜狗輸入法快捷鍵)。
當(dāng)窗口內(nèi)沒有標(biāo)簽時(shí),使用 Ctrl + W
關(guān)閉該窗口。
標(biāo)簽(Tab)
使用 Ctrl + N
在當(dāng)前窗口創(chuàng)建一個(gè)新標(biāo)簽, Ctrl + W
關(guān)閉當(dāng)前標(biāo)簽, Ctrl + Shift + T
恢復(fù)剛剛關(guān)閉的標(biāo)簽。
編輯代碼時(shí)我們經(jīng)常會開多個(gè)窗口,所以分屏很重要。Alt + Shift + 2
進(jìn)行左右分屏, Alt + Shift + 8
進(jìn)行上下分屏, Alt + Shift + 5
進(jìn)行上下左右分屏(即分為四屏)。
各種分屏
分屏之后,使用 Ctrl + 數(shù)字鍵
跳轉(zhuǎn)到指定屏,使用 Ctrl + Shift + 數(shù)字鍵
將當(dāng)前屏移動(dòng)到指定屏。例如, Ctrl + 1
會跳轉(zhuǎn)到1屏,而 Ctrl + Shift + 2
會將當(dāng)前屏移動(dòng)到2屏。
全屏(Full Screen)
Sublime Text 有兩種全屏模式:普通全屏和無干擾全屏。
個(gè)人強(qiáng)烈建議在開啟全屏前關(guān)閉菜單欄(Toggle Menu),否則全屏效果會大打折扣。
F11
切換普通全屏:
普通全屏
Shift + F11
切換無干擾全屏:
無干擾全屏
風(fēng)格(Styles)
風(fēng)格對于任何軟件都很重要,對編輯器也是如此,尤其是GUI環(huán)境下的編輯器。作為一個(gè)程序員,我希望我的編輯器足夠簡潔且足夠個(gè)性。
Notepad++ 默認(rèn)界面
Notepad++
Sublime Text 默認(rèn)界面
Sublime Text
所以在用過 Sublime Text 之后,我立刻就卸掉了 Notepad++。
Sublime Text 自帶的風(fēng)格是我喜歡的深色風(fēng)格(也可以調(diào)成淺色),默認(rèn)主題是Monokai Bright
,這兩者的搭配已經(jīng)很不錯(cuò)了,不過我們還可以做得更好:接下來我將會展示如何通過設(shè)置偏好項(xiàng)和添加自定義風(fēng)格/主題使得 Sublime Text 更加 Stylish。
一些設(shè)置(Miscellaneous Settings)
下面是我個(gè)人使用的設(shè)置項(xiàng)。
// 設(shè)置Sans-serif(無襯線)等寬字體,以便閱讀
"font_face": "YaHei Consolas Hybrid",
"font_size": 12,
// 使光標(biāo)閃動(dòng)更加柔和
"caret_style": "phase",
// 高亮當(dāng)前行
"highlight_line": true,
// 高亮有修改的標(biāo)簽
"highlight_modified_tabs": true,
設(shè)置之后的效果如下:
設(shè)置效果
主題(Themes)
Sublime Text 有大量第三方主題:[https://sublime.wbond.net/browse/labels/theme],這里我給出幾個(gè)個(gè)人感覺不錯(cuò)的主題:
Soda Light
淺色版
Soda Dark
深色版
Nexus
Nexus
Flatland
Flatland
Spacegray Light
淺色版
Spacegray Dark
深色版
配色(Color)
colorsublime 包含了大量 Sublime Text 配色方案,并支持在線預(yù)覽,配色方案的安裝教程在 這里,恕不贅述。
我個(gè)人使用的是 Nexus 主題和 Flatland Dark 配色,配置如下:
"theme": "Nexus.sublime-theme",
"color_scheme": "Packages/Theme - Flatland/Flatland Dark.tmTheme",
效果如下:
Nexus+Flatland
編碼(Coding)
優(yōu)秀的編輯器使編碼變的更加容易,所以 Sublime Text 提供了一系列功能以提高開發(fā)效率。
良好實(shí)踐(Good Practices)
良好的代碼應(yīng)該是規(guī)范的,所以Google為每一門主流語言都設(shè)置了其代碼規(guī)范(Code Style Guideline)。我自己通過下面的設(shè)置使以規(guī)范化自己的代碼。
// 設(shè)置tab的大小為2
"tab_size": 2,
// 使用空格代替tab
"translate_tabs_to_spaces": true,
// 添加行寬標(biāo)尺
"rulers": [80, 100],
// 顯示空白字符
"draw_white_space": "all",
// 保存時(shí)自動(dòng)去除行末空白
"trim_trailing_white_space_on_save": true,
// 保存時(shí)自動(dòng)增加文件末尾換行
"ensure_newline_at_eof_on_save": true,
代碼段(Code Snippets)
Sublime Text 支持代碼段(Code Snippet),輸入代碼段名稱后 Tab
即可生成代碼段。
代碼段效果
你可以通過Package Control安裝第三方代碼段,也可以自己創(chuàng)建代碼段,參考這里。
格式化(Formatting)
Sublime Text 基本的手動(dòng)格式化操作包括:Ctrl + [
向左縮進(jìn), Ctrl + ]
向右縮進(jìn),此外 Ctrl + Shift + V
可以以當(dāng)前縮進(jìn)粘貼代碼(非常實(shí)用)。
除了手動(dòng)格式化,我們也可以通過安裝插件實(shí)現(xiàn)自動(dòng)縮進(jìn)和智能對齊:
-
HTMLBeautify:格式化HTML。 -
AutoPEP8:格式化Python代碼。 -
Alignment:進(jìn)行智能對齊。
自動(dòng)完成(Auto Completion)
Sublime Text 支持一定的自動(dòng)完成,按 Tab
自動(dòng)補(bǔ)全。
自動(dòng)完成
括號(Brackets)
編寫代碼時(shí)會碰到大量的括號,利用 Ctrl + M
可以快速的在起始括號和結(jié)尾括號間切換, Ctrl + Shift + M
則可以快速選擇括號間的內(nèi)容,對于縮進(jìn)型語言(例如Python)則可以使用 Ctrl + Shift + J
。
括號演示
此外,我使用 BracketHighlighter 插件以高亮顯示配對括號以及當(dāng)前光標(biāo)所在區(qū)域,效果如下:
插件演示
命令行(Command Line)
盡管提供了 Python 控制臺,但 Sublime Text 的控制臺僅支持單行輸入,十分不方便,所以我使用 SublimeREPL 以進(jìn)行一些編碼實(shí)驗(yàn)(Experiments)。
SublimeREPL演示
其它(Miscellaneous)
盡管我試圖在本文包含盡可能多的 Sublime Text 實(shí)用技能,但受限于篇幅和我的個(gè)人經(jīng)驗(yàn),本文仍不免有所遺漏,歡迎在評論里指出本文的錯(cuò)誤及遺漏。
下面是一些可能有用但我很少用到的功能:
-
宏(Macro):Sublime Text 支持錄制宏,但我在實(shí)際工作中并未發(fā)現(xiàn)宏有多大用處。 -
其它平臺(Other Platforms):本文只介紹了 Windows 平臺上 Sublime Text 的使用,不過 Linux 和 OS X 上Sublime Text的使用方式和Windows差別不大,只是在快捷鍵上有所差異,請參考 Windows/Linux快捷鍵 和 OS X 快捷鍵。 -
項(xiàng)目(Projects):Sublime Text支持簡單的 項(xiàng)目管理,但我一般只用到文件夾。 -
Vim模式(Vintage):Sublime Text自帶 Vim模式。 -
構(gòu)建(Build):通過配置,Sublime Text可以進(jìn)行 源碼構(gòu)建。 -
調(diào)試(Debug):通過安裝 插件,Sublime Text 可以對代碼進(jìn)行調(diào)試。
快捷鍵列表(Shortcuts Cheatsheet)
我把本文出現(xiàn)的Sublime Text按其類型整理在這里,以便查閱。
通用(General)
-
↑↓←→
:上下左右移動(dòng)光標(biāo),注意不是不是KJHL
! -
Alt
:調(diào)出菜單 -
Ctrl + Shift + P
:調(diào)出命令板(Command Palette) -
`Ctrl + ``:調(diào)出控制臺
編輯(Editing)
-
Ctrl + Enter
:在當(dāng)前行下面新增一行然后跳至該行 -
Ctrl + Shift + Enter
:在當(dāng)前行上面增加一行并跳至該行 -
Ctrl + ←/→
:進(jìn)行逐詞移動(dòng) -
Ctrl + Shift + ←/→
進(jìn)行逐詞選擇 -
Ctrl + ↑/↓
移動(dòng)當(dāng)前顯示區(qū)域 -
Ctrl + Shift + ↑/↓
移動(dòng)當(dāng)前行
選擇(Selecting)
-
Ctrl + D
:選擇當(dāng)前光標(biāo)所在的詞并高亮該詞所有出現(xiàn)的位置,再次Ctrl + D
選擇該詞出現(xiàn)的下一個(gè)位置,在多重選詞的過程中,使用Ctrl + K
進(jìn)行跳過,使用Ctrl + U
進(jìn)行回退,使用Esc
退出多重編輯 -
Ctrl + Shift + L
:將當(dāng)前選中區(qū)域打散 -
Ctrl + J
:把當(dāng)前選中區(qū)域合并為一行 -
Ctrl + M
:在起始括號和結(jié)尾括號間切換 -
Ctrl + Shift + M
:快速選擇括號間的內(nèi)容 -
Ctrl + Shift + J
:快速選擇同縮進(jìn)的內(nèi)容 -
Ctrl + Shift + Space
:快速選擇當(dāng)前作用域(Scope)的內(nèi)容
查找&替換(Finding&Replacing)
-
F3
:跳至當(dāng)前關(guān)鍵字下一個(gè)位置 -
Shift + F3
:跳到當(dāng)前關(guān)鍵字上一個(gè)位置 -
Alt + F3
:選中當(dāng)前關(guān)鍵字出現(xiàn)的所有位置 -
Ctrl + F/H
:進(jìn)行標(biāo)準(zhǔn)查找/替換,之后: -
Alt + C
:切換大小寫敏感(Case-sensitive)模式 -
Alt + W
:切換整字匹配(Whole matching)模式 -
Alt + R
:切換正則匹配(Regex matching)模式 -
Ctrl + Shift + H
:替換當(dāng)前關(guān)鍵字 -
Ctrl + Alt + Enter
:替換所有關(guān)鍵字匹配 -
Ctrl + Shift + F
:多文件搜索&替換
跳轉(zhuǎn)(Jumping)
-
Ctrl + P
:跳轉(zhuǎn)到指定文件,輸入文件名后可以: -
@
符號跳轉(zhuǎn):輸入@symbol
跳轉(zhuǎn)到symbol
符號所在的位置 -
#
關(guān)鍵字跳轉(zhuǎn):輸入#keyword
跳轉(zhuǎn)到keyword
所在的位置 -
:
行號跳轉(zhuǎn):輸入:12
跳轉(zhuǎn)到文件的第12行。 -
Ctrl + R
:跳轉(zhuǎn)到指定符號 -
Ctrl + G
:跳轉(zhuǎn)到指定行號
窗口(Window)
-
Ctrl + Shift + N
:創(chuàng)建一個(gè)新窗口 -
Ctrl + N
:在當(dāng)前窗口創(chuàng)建一個(gè)新標(biāo)簽 -
Ctrl + W
:關(guān)閉當(dāng)前標(biāo)簽,當(dāng)窗口內(nèi)沒有標(biāo)簽時(shí)會關(guān)閉該窗口 -
Ctrl + Shift + T
:恢復(fù)剛剛關(guān)閉的標(biāo)簽
屏幕(Screen)
-
F11
:切換普通全屏 -
Shift + F11
:切換無干擾全屏 -
Alt + Shift + 2
:進(jìn)行左右分屏 -
Alt + Shift + 8
:進(jìn)行上下分屏 -
Alt + Shift + 5
:進(jìn)行上下左右分屏 -
分屏之后,使用 Ctrl + 數(shù)字鍵
跳轉(zhuǎn)到指定屏,使用Ctrl + Shift + 數(shù)字鍵
將當(dāng)前屏移動(dòng)到指定屏
特別推薦一個(gè)分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒關(guān)注的小伙伴,可以長按關(guān)注一下:
長按訂閱更多精彩▼
如有收獲,點(diǎn)個(gè)在看,誠摯感謝
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!