베스코드로 스니 펫 만들기

16890 단어 VS Codesnippetstech
VS코드에서 자주 사용하는 문장이 있다면 가벼운 애완동물을 사용하는 것이 편리하다.
확장을 표준으로 준비하거나 설치할 때 사용 가능
이용자 스스로도 애완동물을 만들 수 있기 때문에 제가 설명해 드리겠습니다.

예비 서류를 준비하다.


파일-사용자 설정-사용자 신분을 선택하고 등록하고 싶은 언어의 json 파일을 선택하면 초기에 다음 파일을 열 수 있습니다.
javascript.json
{
	// Place your snippets for cpp here. Each snippet is defined under a snippet name and has a prefix, body and 
	// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
	// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the 
	// same ids are connected.
	// Example:
	// "Print to console": {
	// 	"prefix": "log",
	// 	"body": [
	// 		"console.log('$1');",
	// 		"$2"
	// 	],
	// 	"description": "Log output to console"
	// }
}
샘플에도 기재가 있으니 샘플에 대한 코멘트를 빼고 실제 서류가 어떻게 돌아가는지 확인해보자.
javascript.json
{
  "Print to console": {
  "prefix": "log",
  "body": [
    "console.log('$1');",
    "$2"
   ],
   "description": "Log output to console"
   }
}
주석 출력을 저장한 후 자바스크립트 파일에 입력log한 다음tab키를 누르면 다음과 같다.
sample.js
console.log('');

펼친 커서의 위치를 json 파일로 작성한 $1 위치로 이동합니다.
텍스트를 입력한 후tab키를 누르면 $2 위치로 이동합니다.
편리한 것은 템플릿 문장을 입력할 수 있을 뿐만 아니라 커서도 입력 위치로 이동할 수 있고 변수로 파일 이름과 날짜를 입력할 수 있으며 정규 표현식으로 문자열을 가공할 수 있다.

구문


"スニペット名":{
  "prefix": "短縮語",      // 複数の場合は["a", "b"]のように入力
  "body": "展開するコード", // 複数行に展開したい場合は["1行目", "2行目", "3行目"...]
  "description": "説明文"  // オプション。なくても構わない。
}
Suni 애완동물 이름은 유일한 이름을 설정합니다.
샘플과 비교하면 이해하기 쉬울 거예요.
영구, 줄임말, 설명문은 따로 설명되지 않았다.
줄임말은 여러 개 등록할 수 있다.
전개된 코드에 관해서는 각양각색의 기능이 있으니 제가 설명해 드리겠습니다.

기본 전개


대부분의 스니 애완동물은 기본적으로 전개가 충분하다.
샘플을 약간 개조해 보세요. 아래와 같습니다.
"Print to console2": {
  "prefix": "log2",
  "body": [
    "console.log('$1');",
    "console.log('$2');",
    "$0"
  ],
  "description": "2回ログを表示する"
}
$1,$2는 스니 애완동물이 펼친 후 커서의 위치다.$1의 위치를 입력한 후tab을 누르면 다음$2으로 이동합니다.$0는 특별한 마지막 자리다.
이것$N을 제표위라고 한다.

탭 위치 정보


시계 위치에 관해서는 많은 기능이 있다.
기본값, 옵션, 파일 이름 등 변수, 정규 표현식 등.

기본값


탭 위치에서 기본값을 설정할 수 있습니다.${N:デフォルト値}와 같이 기재한다.
cpp.json
"for loop":{
  "prefix": "for2",
  "body": [
    "for(${1: size_t} ${2: index} = 0; $2 < ${3: size}; ++$2){",
    "  $0"
    "}"
  ],
  "description": "C++のforループ"
}
당신은 상술한 샘플 중 여러 개$2가 있다는 것을 알아차렸습니까?
여러 개의 같은 테이블 위치가 있을 수 있다.
또 기본값인 index는 최초$2만 기재됐고, 펼친 후 남은 $2도 기본값인 index를 입력했다.
확장 예
//for2 -> tab
for( size_t  index = 0;  index <  size; ++ index){
  
}

옵션


탭 위치도 옵션에서 선택할 수 있습니다.${N|option1,option2,...optionN|}와 같이 기재한다.
cpp.json
 "tmplate class": {
    "prefix": "tmpc",
    "body": [
      "template<${1|typename, class|} T>",
      "class ${2:tmp_class}{",
      "  $0",
      "};"
    ]
  },

확장 예

변량


파일 이름이나 현재 날짜를 입력하려면 변수를 사용할 수도 있습니다.$変数名와 같이 기재한다.
변수 이름 일람은 아래와 같다.
  • TM_SELECTED_TEXT 현재 선택한 텍스트
  • TM_CURRENT_LINE 현재 행의 내용
  • TM_CURRENT_WORD 현재 커서 위치의 단어(또는 공백)
  • TM_LINE_INDEX 첫 번째 행위 0행의 현재 행 번호
  • TM_LINE_NUMBER 첫 번째 행의 현재 행 번호
  • TM_FILENAME 현재 문서의 파일 이름
  • TM_FILENAME_BASE 현재 문서의 파일 이름(확장자 없음)
  • TM_DIRECTORY 현재 문서의 디렉토리
  • TM_FILEPATH 현재 문서의 모든 파일 경로
  • RELATIVE_FILEPATH 현재 문서의 상대적(열린 작업공간 또는 폴더의 경우) 파일 경로
  • CLIPBOARD 클립보드 내용
  • WORKSPACE_NAME 열린 작업공간 또는 폴더의 이름
  • WORKSPACE_FOLDER 열린 작업공간 또는 폴더 경로
  • CURRENT_YEAR 현재 연도
  • CURRENT_YEAR_SHORT 현재 연도의 하위 2위
  • CURRENT_MONTH 두 자릿수의 월(예'02')
  • CURRENT_MONTH_NAME월의 공식 이름(예: "Jully")
  • CURRENT_MONTH_NAME_SHORT 월의 약칭(예: "Jull")
  • CURRENT_DATE 두 자릿수 날짜(예: "08")
  • CURRENT_DAY_NAME 요일(예를 들어 "Monday")
  • CURRENT_DAY_NAME_SHORT 요일의 약칭(예를 들어 "Mon")
  • CURRENT_HOUR 24시간 디스플레이의 현재 시간
  • CURRENT_MINUTE 현재 섹션을 두 자릿수로 표시
  • CURRENT_SECOND 현재 초
  • 를 두 자릿수로 표시합니다.
  • CURRENT_SECONDS_UNIX Unix 시대의 초
  • RANDOM 소수점 6자리의 무작위 수
  • RANDOM_HEX 16진수 6자리 랜덤
  • UUID 버전 4의 UUID
  • BLOCK_COMMENT_START 출력 예: C++/* 또는 HTML<!--
  • BLOCK_COMMENT_END 출력 예: C++*/ 또는 HTML-->
  • LINE_COMMENT 출력 예: C++시//
  • 일본어라면 연월일과 일요일은 언어와 장소에 따라 달라진다. 예를 들어'수요일'이다.
    "day":{
      "prefix": "day",
      "body": "$CURRENT_YEAR/$CURRENT_MONTH/$CURRENT_DATE-$CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND",
      "description": "YYYY/MM/DD-HH:MM:SS"
    }
    
    sample
    2022/03/13-16:57:11
    

    정규 표현식


    변수에 대해 정규 표현식 처리를 할 수 있다.${変数/正規表現/置換/正規表現オプション}sample
    "#name": {
      "prefix": "#name",
      "body": "${TM_FILENAME/(?:(\\w+)(\\.)?)/${1:/upcase}${2:+_}/gi}"
    }
    
    header.sample.hpp
    HEADER_SAMPLE_HPP
    
    header.sample.hpp 파일에서 상기 sni 애완동물을 펼치는 경우
    정규 표현식과 정규 표현식 옵션은 javascript의 정규 표현식을 검사하십시오.
    교체된 스니프만의 기능$1... 등은 대문자화 등 옵션이 있다.
    상기 샘플 중${1: /upcase} 부분/upcase을 선택하세요.
    항목 교체 옵션 목록
  • /upcase 대문자
  • /downcase 소문자
  • /capitalize 문자의 시작을 대문자로 설정합니다
  • .
  • /camelcase 낙타 껍질 사용
  • /pascalcase 파스카 케이스 사용
  • + string 정규 표현식이 포획한 부분이 공백이 아니라면string
  • ? A: B 정규 표현식이 포획한 부분이 공백이 아니라면 A, 공백이면 B
  • - string 정규 표현식에서 포획된 부분이 공백이면string
  • string 정규 표현식에서 포획된 부분이 공백이면string
  • 단축키 등


    변수 목록에 현재 선택 범위가 있는 것을 기억하십니까?
    선택 범위에 sni 애완동물을 적용할 때 단축 이름을 입력할 수 없습니다.

    명령 트레이에서 선택


    선택 범위에 sni애완동물을 적용하는 방법은 두 가지가 있는데 하나는 명령 트레이에서 sni애완동물을 삽입하는 방법이다.Ctrl+Shift+P→수니 펫 삽입→상응하는 수니 펫 선택

    단축키 적용 사용


    또 하나는 단축키에 분배하는 방법이다.
    이것은 아까 json 파일과 다른 json 파일입니다.
    파일 - 사용자 설정 - 키보드 단축키 - 오른쪽 위 모서리 키보드 단축키 열기 아이콘 을 클릭합니다.

    이렇게 하면 다음 json 파일을 열 수 있습니다.
    keybindings.json
    // 既定値を上書きするには、このファイル内にキー バインドを挿入します
    []
    
    거기에 단축키로 추가합니다.
    keybindings.json
    [{
      "key": "cmd+k 1",
      "command": "editor.action.insertSnippet",
      "when": "editorTextFocus",
      "args": {
        "snippet": "`$TM_SELECTED_TEXT`"
      }
    }]
    
    언어의 json 파일에 sni 애완동물을 등록했습니다. 이 애완동물을 호출한 경우 다음과 같습니다.
    keybindings.json
    [{
      "key": "cmd+k 1",
      "command": "editor.action.insertSnippet",
      "when": "editorTextFocus",
      "args": {
        "langId": "cpp",
        "name": "tmplate class"
      }
    }]
    
    cpp.단축키 cmd+k, 1로 json이 정의한templateclass라는 sni 애완동물을 삽입합니다.

    기타


    스티브 애완동물도 시장 광장에서 확장 기능으로 공개할 수 있다.

    좋은 웹페이지 즐겨찾기