代碼片斷分兩種:vue
snippets
目錄下生成 .code-snippets
爲後綴的配置文件,而新建對應語言的代碼片斷會生成 對應語言 + .json
的配置文件。下圖是建立代碼塊的開始界面:json
示例:
console.log
代碼塊數組
"console.log": {
"prefix": "log",
"body": [
"console.log($1)",
"$2"
],
"description": "console.log快捷"
}
複製代碼
如下說明都用上面的 console.log
代碼塊舉例:bash
console.log
對應代碼片斷名稱。prefix
對應觸發代碼片斷的字符。body
對應代碼片斷內容,能夠是字符串,也能夠爲數組,若爲數組每一個元素都作爲單獨的一行插入。body
的內容支持js的轉義字符,如 \n\r
等,我我的不建議用 \n
,可另起一行給數組多插入一項,否則一行太多的話不容易觀察代碼塊的格式。description
對應代碼片斷描述。log
方法中 $
後面緊跟數字可指定代碼片斷觸發落入編輯器以後的光標位置,光標位置按照從小到大排序。 log
方法中當你輸入 log + TAB
以後光標會默認落到 log()
的括號中($1
的位置),若是此時沒有手動移動光標位置,再次按 TAB
則光標會落到 console.log()
的第二行( $2 的位置),固然,你也能夠設置 $三、$4
... 等等。須要特別注意的是 $0 用於設置最終光標的位置,設置了 $0
以後,再日後設置其餘佔位符則不會生效, $0
終止了 TAB鍵
的光標跳轉操做。less
"方法註釋": {
"prefix": "zs-Function",
"body": [
"/**",
" * @param name... { ${1|Boolean,Number,String,Object,Array|} }",
" * @description description...",
" * @return name... { ${2|Boolean,Number,String,Object,Array|} }",
" */",
"$0"
],
"description": "添加方法註釋"
}
複製代碼
上面是一個簡單的方法註釋代碼塊,佔位符默認不帶可選項,若是要設置佔位內容的可選項,寫法爲 ${1|a,b,c}
,括號中的 1
對應的是按 TAB
以後的光標落點順序, abc
爲可選的項,用逗號隔開。因此上面的代碼在輸入 zs + TAB
後第一個光標會落在 param name... {}
的大括號中($1
的位置),以下圖能夠看到設置的可選項。編輯器
選擇了參數類型以後,再次按 TAB
, 光標會自動落到返回參數類型處($2
的位置)並彈出可選項。以下所示:spa
選擇了第二個選項以後,再次按 TAB
,光標自動落到咱們配置的 $0
處,也就是 */
的下一行:3d
須要注意的是: code
${1:default}
的格式。${1:another ${2:placeholder}}
。使用 $name
或者 ${name:default}
能夠插入變量的值。若是未設置變量,則會插入其默認值或空字符串。當變量未知(未定義其名稱)時,會將插入的變量名稱轉換爲佔位符。component
VSCode 中可使用如下變量:
1)文檔相關:
變量 | 變量含義 |
---|---|
TM_SELECTED_TEXT |
當前選定的文本或空字符串 |
TM_CURRENT_LINE |
當前行的內容 |
TM_CURRENT_WORD |
光標下的單詞內容或空字符串 |
TM_LINE_INDEX |
基於零索引的行號 |
TM_LINE_NUMBER |
基於單索引的行號 |
TM_FILENAME |
當前文檔的文件名 |
TM_FILENAME_BASE |
當前文檔沒有擴展名的文件名 |
TM_DIRECTORY |
當前文檔的目錄 |
TM_FILEPATH |
當前文檔的完整文件路徑 |
CLIPBOARD |
剪貼板的內容 |
WORKSPACE_NAME |
已打開的工做空間或文件夾的名稱 |
2)當前日期和時間:
變量 | 變量含義 |
---|---|
CURRENT_YEAR |
當前年份 |
CURRENT_YEAR_SHORT |
當前年份的最後兩位數 |
CURRENT_MONTH |
月份爲兩位數(例如'02') |
CURRENT_MONTH_NAME |
月份的全名(例如'June')(中文語言對應六月) |
CURRENT_MONTH_NAME_SHORT |
月份的簡稱(例如'Jun')(中文語言對應是6月) |
CURRENT_DATE |
這個月的哪一天 |
CURRENT_DAY_NAME |
當天是星期幾(例如'星期一') |
CURRENT_DAY_NAME_SHORT |
當天是星期幾的簡稱(例如'Mon')(中文對應週一) |
CURRENT_HOUR |
24小時時鐘格式的當前小時 |
CURRENT_MINUTE |
當前分 |
CURRENT_SECOND |
當前秒 |
3)要插入行或塊註釋,請遵循當前語言:
變量 | 變量含義 |
---|---|
BLOCK_COMMENT_START |
輸出:PHP /*或HTML格式<!-- |
BLOCK_COMMENT_END |
輸出:PHP */或HTML格式--> |
LINE_COMMENT |
輸出:PHP //或HTML格式 |
舉個栗子:
下面的代碼塊是經常使用的文件頂部添加做者和時間的塊註釋,其中用到了年(CURRENT_YEAR
)月(CURRENT_MONTH
)日($CURRENT_DATE
)的系統變量。
"做者和時間註釋": {
"prefix": "zs-Author & Time",
"body": [
"/**",
" * Created by preference on $CURRENT_YEAR/$CURRENT_MONTH/$CURRENT_DATE",
" */",
"$0"
],
"description": "添加做者和時間註釋"
}
複製代碼
再舉個栗子:
下面的代碼塊是新建 .Vue
文件的模板代碼塊,其中用到了當前文檔沒有擴展名的文件名(TM_FILENAME_BASE
),默認把文件名填入 name
和 class
中。
"Vue模板": {
"prefix": "vue-template",
"body": [
"<template>",
" <section class=\"$TM_FILENAME_BASE\">",
" $1",
" </section>",
"</template>\n",
"<script>",
"export default {",
" name: '$TM_FILENAME_BASE',",
" data() {",
" return {\n",
" }",
" },",
" components: {},",
" watch: {},",
" mounted() {},",
" methods: {}",
"}",
"</script>\n",
"<style scoped lang=\"less\">\n",
"</style>",
"$0"
],
"description": "Vue模板"
}
複製代碼
經過佔位符和變量組合,各位童鞋能夠充分發揮本身的想象力去設置本身喜歡的、經常使用的代碼片斷,提升開發效率和開發體驗,但願這篇文章能給你們帶來幫助,若有錯誤可在評論者提出。