vsCode設定程式碼片段
阿新 • • 發佈:2021-06-16
開啟設定
- 方法一:開啟設定面板->選擇使用者的程式碼片段
- 方法二:按
ctrl + alt + p
選擇建立程式碼片段
- 可以直接開啟現有程式碼片段
- 可以選擇建立全域性程式碼片段
- 可以選擇建立當前資料夾的程式碼片段
新建完成的程式碼片段有預設參考例子,開啟註釋可以測試
輸入log
,可以看到第一個是我們自己新增的程式碼片段
snippet語法
"Print to console": { "scope": "javascript,typescript", "prefix": "log", "body": [ "console.log('$1');", "$2" ], "description": "Log output to console" }
Print to console
程式碼片段名稱scope
使用的語言範圍prefix
觸發當前的 snippt 片段body
程式碼片段的具體內容description
程式碼片段的描述
片段語法
body 片段裡面可以使用特殊的結構來控制插入的游標和文字。
佔位符
使用 $
符號作為佔位符,當輸入程式碼片段的 prefix
後按 tab 鍵可以生成程式碼片段,然後再按 tab 鍵可以調到下一個佔位符。佔位符一般從 $1
開始,依次增加。
$0
用於設定最終游標的位置,設定了$0
之後,再往後設定其他佔位符則不會生效,$0
終止了TAB鍵
的游標跳轉操作。
佔位內容的可選項
"desc": { "scope": "javascript,typescript", "prefix": "desc", "body": [ "/**", " * @Description ${1}", " * @Author holyer", " * @Date $CURRENT_YEAR/$CURRENT_MONTH/$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND", " * @param { ${2|Boolean,Number,String,Object,Array,*|} }", " * @return { ${3|Boolean,Number,String,Object,Array,*|} }", " */", ], "description": "方法註釋" },
上面是一個簡單的方法註釋程式碼塊,佔位符預設不帶可選項,如果要設定佔位內容的可選項,寫法為 ${1|a,b,c}
,括號中的 1
對應的是按 TAB
之後的游標落點順序, abc
為可選的項,用逗號隔開。所以上面的程式碼在輸入 desc + TAB
後第一個游標會落在 param name... {}
的大括號中($1
的位置),如下圖可以看到設定的可選項。
選擇了引數型別之後,再次按 TAB
, 游標會自動落到返回引數型別處($2
的位置)並彈出可選項。
注意:
- 如果可選擇內容只有一個值的話可以寫成
${1:default}
的格式。 - 佔位內容支援巢狀,比如
${1:another ${2:placeholder}}
。
變數
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
當前文件的完整檔案路徑RELATIVE_FILEPATH
當前文件的相對(相對於開啟的工作區或資料夾)檔案路徑CLIPBOARD
剪貼簿的內容WORKSPACE_NAME
開啟的工作區或資料夾的名稱WORKSPACE_FOLDER
開啟的工作區或資料夾的路徑
2. 日期和時間相關:
CURRENT_YEAR
本年度CURRENT_YEAR_SHORT
當前年份的最後兩位數字CURRENT_MONTH
月份為兩位數(例如“02”)CURRENT_MONTH_NAME
月份的全名(例如“七月”)CURRENT_MONTH_NAME_SHORT
月份的簡稱(例如“Jul”)CURRENT_DATE
一個月中的哪一天CURRENT_DAY_NAME
日期名稱(例如“星期一”)CURRENT_DAY_NAME_SHORT
一天的簡稱(例如“星期一”)CURRENT_HOUR
24 小時制的當前小時CURRENT_MINUTE
當前分鐘CURRENT_SECOND
當前秒CURRENT_SECONDS_UNIX
自 Unix 紀元以來的秒數
3. 插入隨機值:
RANDOM
6 位隨機 Base-10 數字RANDOM_HEX
6 位隨機 Base-16 數字UUID
版本 4 UUID
4. 插入註釋相關:
BLOCK_COMMENT_START
示例輸出:PHP/*
或 HTML<!--
BLOCK_COMMENT_END
示例輸出:PHP*/
或 HTML-->
LINE_COMMENT
示例輸出:在 PHP 中//
個人片段
-
方法註釋
"desc": { "scope": "javascript,typescript", "prefix": "desc", "body": [ "/**", " * @Description ${1}", " * @Author holyer", " * @Date $CURRENT_YEAR/$CURRENT_MONTH/$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND", " * @param { ${2|Boolean,Number,String,Object,Array,*|} }", " * @return { ${3|Boolean,Number,String,Object,Array,*|} }", " */", ], "description": "方法註釋" },
-
定義箭頭函式
"defn": { "scope": "javascript,typescript", "prefix": "defn", "body": [ "const $1 = () => {", "$2", "}", ], "description": "新建箭頭函式" }
程式碼片段生成器:https://snippet-generator.app/
參考: