vsCode設置代碼片段


打開設置

  • 方法一:打開設置面板->選擇用戶的代碼片段
  • 方法二:ctrl + alt + p

image-20210615170543539

選擇創建代碼片段

  1. 可以直接打開現有代碼片段
  2. 可以選擇創建全局代碼片段
  3. 可以選擇創建當前文件夾的代碼片段

新建完成的代碼片段有默認參考例子,打開注釋可以測試

image-20210615171527062

輸入log ,可以看到第一個是我們自己添加的代碼片段

image-20210615172020343

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 的位置),如下圖可以看到設置的可選項。

image-20210616125328008

選擇了參數類型之后,再次按 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 中 //

個人片段

  1. 方法注釋

    "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": "方法注釋"
    	},
    
  2. 定義箭頭函數

    "defn": {
        "scope": "javascript,typescript",
        "prefix": "defn",
        "body": [
            "const $1 = () => {",
            "$2",
            "}",
        ],
        "description": "新建箭頭函數"
    }
    

代碼片段生成器:https://snippet-generator.app/

參考:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM