TIL

[TIL] vscode snippet으로 빠르게 초기 코드 작성하기

happykoa 2020. 4. 29. 05:14

몇년간 ps 문제를 풀면서 난 왜 한번도 snippet을 등록할 생각을 안 했던걸까?

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

맨날 #include 부터 시작했다...

 

https://nesoy.github.io/articles/2019-03/Vscode-Code-snippet

 

Vscode Code Snippets 설정하기

Vscode Code Snippet 설정하기 Code - Preference -> User Snippets 원하는 파일 형식에 추가하기 Markdown 예시 자주 사용하는 표현을 Snippet으로 표현하기 markdown으로 쉽게 포스트 포맷 작성하기 "POST": { "prefix": "post", // Snippet Prefix "body": [ "---", "layout: post", "title: $1", // $1로 focusing 할 수 있습니

nesoy.github.io

 

이분의 글을 참고하여서 vscode에서 c++ snippet을 한번 만들어봤다.

 

일단, snippet을 등록하는 방법은 vscode에서,

 

1. 상단창에 파일 > 사용자 코드 조각

2. 등록하고 싶은 언어 입력(나같은 경우는 cpp)

 

그리고 나면, json 파일이 나타난다.

 

아래 예시같이 json 파일에 입력을 해보자.

{
	"ps-start": {
		"prefix": "ps",
		"body": [
			"#include <iostream>",
			"#include <vector>",
			"#include <algorithm>",
			"using namespace std;",
			"typedef unsigned long long ull;",
			"typedef long long ll;",
			"typedef vector <ull> ullv1;",
			"typedef vector <vector <ull>> ullv2;",
			"",
			"$1",
			"int main() {",
			"    ios::sync_with_stdio(0);",
			"    cin.tie(0);",
			"    cout.tie(0);",
			"    ",
			"    $2",
			"}",
		],
		"description": "ps code snippet"
	}
}

요 json에서 ps-start 라는 문자열은 이 snippet의 이름으로 생각하면 되고,

"prefix"의 value는 편집기에서 무슨 문자열을 쳤을 때, 이 snippet을 사용하는 것을 결정할지 정하는 것이다.

아래 "body"는 말 그대로 코드 부분이다. 

"description" 부분은 이 snippet에 부가적인 설명을 붙여놓는 것이다.

 

주목해볼만한 곳은

$1과 같이 넘버링이 되어있는 곳인데, 이곳에는 이 snippet을 사용할 때, 바로 포커싱 되는 곳과 순서대로 포커싱 되는 곳을 지정해주는 것이다. 

 

주로 나는 전역변수를 어느정도 선언하고 나서, main 함수 안에 코드를 작성하는 습관이 있어서 그 순서대로 넘버링을 해놓았다.

 

이후에는 귀찮은 구현들을 미리 미리 해놓고 snippet으로 등록해서 사용해도 괜찮을 것 같다.

(물론 대회나 코테 준비를 할 때는 사용하지 않는 연습을 해야하겠지만..)

 

이제는 좀 더 편안하게 코드를 짤 수 있겠구먼요

Rmx