摘要
程序員總是會不斷的重復寫一些簡單的代碼片段,為了提高編碼效率,我們可以把經常用到的代碼保存起來再調用。
平時用sublime安裝各種插件,使用Tab鍵快速補全,便是snippets(可譯為代碼片段)的一種。
Sublime編輯器還提供了自定義代碼片段的功能(當然不止Sublime有此功能),其官方文檔中定義如下:
Whether you are coding or writing the next vampire best-seller, you’re likely to need certain short fragments of text again and again. Use snippets to save yourself tedious typing. Snippets are smart templates that will insert text for you and adapt it to their context.
一、創建snippets
1. 新建和保存
菜單欄中依次選擇Tools | Developer | New Snippet...就會新建一個擴展名為
.sublime-snippet
的XML語法的文檔,注意后綴是識別snippets的關鍵。代碼片段可以任意存儲在packages文件夾下,默認會保存在Packages\User文件夾里,為了方便管理和使用建議再新建個文件夾例如snippets,則路徑為Packages\User\snippets。
默認結構如下:
<snippet>
<content><![CDATA[
Hello, ${1:this} is a ${2:snippet}.
]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<!-- <tabTrigger>hello</tabTrigger> -->
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<!-- <scope>source.python</scope> -->
</snippet>
2. content
<content></content>
中必須包含<![CDATA[…]]>
,在這里面寫自定義的代碼片段。代碼片段如果含有
]]>
,需寫成]]$NOT_DEFINED>
。如果含有
$
,需寫成\$
。
3. tabTrigger
- 在
<tabTrigger></tabTrigger>
中設置讓Sublime自動補全的觸發詞(trigger keyword)。
4. scope
設置代碼片段在何種語言環境下激活,默認寫的是python。
想指定多個scope,可以使用英文逗號
,
來分隔。如何知道文檔的
Scope
是什么?菜單欄依次選擇Tools | Developer | Show Scope Name...,快捷鍵是Ctrl+Alt+Shift+P。
5. description
如果加了
<description>描述內容</description>
,點開Tools | Snippets...會顯示你定義的描述內容。如果不寫則顯示文件名。
6. 設置光標位置Fields
<snippet>
<content><![CDATA[
First Name: $1
Second Name: $2
Address: $3
]]></content>
美元符加數字即可設置field markers即光標的位置,按Tab鍵光標按數字依次從小到大循環,如上從1到2到3再到1。
Shift+Tab可以進行向上跳轉。
Esc結束跳轉。
$0表示最后一個位置。
7. 鏡像域Mirrored Fields
- 相同編號的位置即是鏡像域,可同時選中進行編輯。
8. 占位符Placeholders
{數字編號}
可以得到一個Tab占位符。{1:default}
可以得到一個默認值。按Tab鍵依次循環選中代碼片段中的默認值。
如默認的代碼片段Hello, ${1:this} is a ${2:snippet}.
會依次循環選中單詞this
snippet
。
二、使用snippets
方法1:菜單欄點擊Tools | Snippets...,彈出為當前語法可用的Snippet,點擊即插入。
方法2:輸入觸發詞然后按Tab鍵。
三、安裝snippets
方法1:進入Package Control:install Package搜索選擇安裝已有的代碼片段擴展包。
方法2:菜單選擇Preferences | Browse Packages...打開,建議新建文件夾snippets方便管理,路徑為Sublime Text3\Packages\User\snippets,將寫好的代碼片段拷貝進去。
參考
掘金:Sublime Text3—Code Snippets(自定義代碼片段)
簡書:Sublime Text3—Code Snippets(自定義代碼片段)
博客園:Sublime Text3—Code Snippets(自定義代碼片段)