代碼段是模板,可以讓您更輕鬆地輸入重複的代碼模式,例如循環或條件語句。javascript
在Visual Studio Code中,代碼片斷會與其餘建議一塊兒出如今智能感知中,也出如今專用的代碼片斷選擇器中(在「命令面板」中插入代碼片斷)。還支持製表符補全:使用啓用它"editor.tabCompletion": "on",鍵入一個代碼段前綴(觸發文本),而後按Tab插入一個代碼段。html
您能夠輕鬆定義本身的代碼片斷,而無需任何擴展。要建立或編輯本身的代碼段,請在「 文件」 > 「首選項****」下選擇「 用戶代碼段****」(在macOS上爲「 代碼」 > 「首選項 」),而後選擇要顯示代碼段的語言,若是須要,則選擇「 新建全局代碼段」文件選項。出現全部語言。VS Code爲您管理基礎代碼段文件的建立和刷新。java
代碼段文件以JSON格式編寫,支持C樣式的註釋,而且能夠定義無限數量的代碼段。片斷支持大多數TextMate語法以實現動態行爲,並根據插入上下文智能地格式化空格,並容許輕鬆地進行多行編輯。json
如下是forJavaScript循環代碼段的示例:編輯器
// in file 'Code/User/snippets/javascript.json' { "For Loop": { "prefix": ["for", "for-const"], "body": ["for (const ${2:element} of ${1:array}) {", "\t$0", "}"], "description": "A for loop." } }
在上面的示例中:ide
另外,所述body的例子中的上述具備三個佔位符(在遍歷順序列出): ,${1:array},${2:element}和$0。您能夠使用Tab快速跳到下一個佔位符,此時您能夠編輯佔位符或再次跳到下一個佔位符。結腸(若是有的話)以後的字符串是默認的文本,例如element在${2:element}。佔位符遍歷順序從數字開始遞增,從1開始;零是一種可選的特殊狀況,它老是排在最後,並在光標位於指定位置的狀況下退出摘要模式。oop
代碼片斷的範圍有限,所以僅建議相關代碼段。片斷的範圍能夠是:code
根據是否在如下代碼中定義,每一個代碼段的範圍都限於一種,幾種或全部(「全局」)語言:htm
用戶定義的單語言代碼段是在特定語言的代碼段文件中定義的(例如javascript.json),您能夠經過「首選項:配置用戶代碼段」中的語言標識符來訪問該文件。僅在編輯其定義的語言時才能訪問該代碼段。blog
多語言和全局用戶定義的代碼段均在「全局」代碼段文件(帶有文件後綴的JSON .code-snippets)中定義,也能夠經過「首選項:配置用戶代碼段」進行訪問。在全局代碼段文件中,代碼段定義可能具備scope採用一個或多個語言標識符的附加屬性,這使該代碼段僅可用於那些指定的語言。若是未提供任何scope屬性,則全局代碼段適用於全部語言。
大多數用戶定義的代碼段的範圍僅限於一種語言,所以是在特定於語言的代碼段文件中定義的。
您還能夠將全局片斷文件(帶有文件後綴的JSON .code-snippets)的範圍限定到您的項目。項目文件夾摘要是使用「'...「 首選項:配置用戶代碼段」下拉菜單中的「選項」選項,該選項位於.vscode文件夾中項目的根目錄下。項目摘要文件可用於與該項目中的全部用戶共享摘要。項目文件夾片斷與全局片斷類似,而且能夠經過該scope屬性將範圍限定爲特定語言。
該body片斷能夠使用特殊的結構來控制插入光標和文字。如下是受支持的功能及其語法:
使用製表符,能夠使編輯器光標在摘要內移動。使用$1,$2指定遊標的位置,。該數字是將按$0Tab鍵訪問的順序,而表示最終光標的位置。相同的Tabstop的屢次出現被連接並同步更新。
佔位符是帶有值的製表符,例如${1:foo}。將插入並選擇佔位符文本,以即可以輕鬆更改它。佔位符能夠嵌套,例如${1:another ${2:placeholder}}。
佔位符能夠選擇做爲值。語法是用逗號分隔的值枚舉,例如用豎線字符括起來${1|one,two,three|}。插入代碼段並選擇佔位符後,選項將提示用戶選擇其中一個值。
使用$name或${name:default},您能夠插入變量的值。若是未設置變量,則將其默認值或空字符串插入。當變量未知(即未定義其名稱)時,將插入該變量的名稱,並將其轉換爲佔位符。
使用$name或${name:default},您能夠插入變量的值。若是未設置變量,則將其默認值或空字符串插入。當變量未知(即未定義其名稱)時,將插入該變量的名稱,並將其轉換爲佔位符。
能夠使用如下變量:
要插入當前日期和時間:
要插入行或塊註釋,請遵循當前語言:
如下代碼段可插入/* Hello World */JavaScript文件和<!-- Hello World -->HTML文件中:
{ "hello": { "scope": "javascript,html", "prefix": "hello", "body": "$BLOCK_COMMENT_START Hello World $BLOCK_COMMENT_END" } }