vscode 유용한 단축키 모음

Visual Studio Code(vscode)는 마이크로소프트에서 개발한 무료 오픈 소스 코드 편집기이다. vscode는 다양한 언어 지원, 디버깅, Git 제어, 플러그인 지원 등 여러 기능을 제공하여 사용자에게 효율적인 코딩 환경을 제공한다. 여러 가지 단축키를 사용하여 생산성을 높이고, vscode를 더 효율적으로 사용하는 방법을 알아보자. 일반 명령어 및 단축키 Ctrl+Shift+P, F1: 명령 팔레트를 열어 다양한 명령을 실행할 수 있다. 예를 들어, 파일을 검색하거나 특정 설정을 변경할 수 있다. Ctrl+P: 파일을 빠르게 검색하고 열 수 있다. 파일 이름의 일부를 입력하여 파일 목록에서 선택할 수 있다. Ctrl+Shift+N: 새로운 VSCode 창 또는 인스턴스를 열 수 있다. 여러 프로젝트를 동시에 열어 작업할 때 유용하다. Ctrl+W: 현재 열려 있는 창 또는 인스턴스를 닫을 수 있다. 여러 탭을 빠르게 정리할 때 유용하다. Ctrl+,: 사용자 설정을 열어 테마, 글꼴 크기, 확장 설정 등 다양한 환경 설정을 할 수 있다. Ctrl+K Ctrl+S: 키보드 단축키 설정을 열어 사용자가 원하는 대로 단축키를 변경할 수 있다. 기본 편집 기능 및 단축키 Ctrl+X: 선택된 텍스트가 없을 때 현재 줄을 잘라낼 수 있다. 선택된 텍스트가 있으면 선택된 부분만 잘라낸다. Ctrl+C: 선택된 텍스트가 없을 때 현재 줄을 복사할 수 있다. 선택된 텍스트가 있으면 선택된 부분만 복사한다. Alt+↓ / ↑: 현재 줄을 아래나 위로 이동할 수 있다. 코드 블록을 재배열할 때 유용하다. Ctrl+Shift+K: 현재 줄을 삭제할 수 있다. 여러 줄을 선택한 경우 선택된 모든 줄이 삭제된다. Ctrl+Enter / Ctrl+Shift+Enter: 현재 줄 아래/위에 새 줄을 삽입할 수 있다. 빠르게 새 코드를 추가할 때 유용하다. Ctrl+Shift+\: 현재 커서 위치의 괄호와 일치하는 짝 괄호로 이동할 수 있다. 중첩된 괄호를 쉽게 파악할 수 있다. Ctrl+] / Ctrl+[: 현재 줄을 들여 쓰기/내어 쓰기 할 수 있다. 코드 포맷을 맞출 때 유용하다. Home / End: 현재 줄의 시작/끝으로 이동할 수 있다. Ctrl+Home / End: 파일의 시작/끝으로 이동할 수 있다. Ctrl+↑ / ↓: 현재 창에서 한 줄씩 위/아래로 스크롤 할 수 있다. 코드를 빠르게 훑어볼 때 유용하다. Alt+PgUp / PgDn: 한 페이지씩 위/아래로 스크롤 할 수 있다. Ctrl+Shift+[ / ]: 코드 영역을 접거나 펼칠 수 있다. 특정 코드 블록을 숨겨서 코드를 깔끔하게 정리할 때 유용하다. Ctrl+K Ctrl+[ / ]: 모든 하위 영역을 접거나 펼칠 수 있다. Ctrl+K Ctrl+0 / Ctrl+K Ctrl+J: 모든 코드 영역을 접거나 펼칠 수 있다. Ctrl+K Ctrl+C: 선택된 줄에 주석을 추가할 수 있다. Ctrl+K Ctrl+U: 선택된 줄의 주석을 제거할 수 있다. Ctrl+/: 현재 줄에 주석을 토글 할 수 있다. Ctrl+Shift+A: 선택된 블록에 주석을 토글 할 수 있다. Alt+Z: 단어 줄 바꿈을 토글 할 수 있다. 긴 줄을 화면에 맞춰 줄 바꿈 하여 보여준다. 풍부한 언어 편집 기능 및 단축키 Ctrl+Space, Ctrl+I: 코드 작성 시 자동 완성 제안을 표시할 수 있다. Ctrl+Shift+Space: 함수 호출 시 매개변수 힌트를 표시할 수 있다. Ctrl+Shift+I: 현재 문서를 자동으로 포매팅할 수 있다. Ctrl+K Ctrl+F: 선택된 부분을 자동으로 포매팅할 수 있다. F12: 커서 위치의 정의로 이동할 수 있다. Ctrl+Shift+F10: 커서 위치의 정의를 미리 볼 수 있다. Ctrl+K F12: 커서 위치의 정의를 새 창으로 열 수 있다. Ctrl+.: 코드 오류를 빠르게 수정할 수 있는 제안을 표시할 수 있다. Shift+F12: 커서 위치의 참조를 표시할 수 있다. F2: 변수 또는 함수 이름을 바꿀 수 있다. Ctrl+K Ctrl+X: 문서 끝의 공백을 제거할 수 있다. Ctrl+K M: 현재 파일의 언어 모드를 변경할 수 있다. 멀티 커서 및 선택 기능 Alt+Click: 여러 위치에 커서를 삽입할 수 있다. Shift+Alt+↑ / ↓: 위/아래에 커서를 추가할 수 있다. Ctrl+U: 마지막 커서 작업을 취소할 수 있다. Shift+Alt+I: 선택된 각 줄 끝에 커서를 삽입할 수 있다. Ctrl+L: 현재 줄을 선택할 수 있다. Ctrl+Shift+L: 현재 선택 영역의 모든 항목을 선택할 수 있다. Ctrl+F2: 현재 단어의 모든 항목을 선택할 수 있다. Shift+Alt+→ / ←: 선택 영역을 확장하거나 축소할 수 있다. Shift+Alt+드래그: 열 선택을 할 수 있다. 디스플레이 관리 F11: 전체 화면 모드를 토글 할 수 있다. Shift+Alt+0: 편집기 레이아웃을 수평/수직으로 토글 할 수 있다. Ctrl+= / -: 화면을 확대/축소할 수 있다. Ctrl+B: 사이드바의 가시성을 토글 할 수 있다. Ctrl+Shift+E: 탐색기를 표시하거나 포커스를 이동할 수 있다. Ctrl+Shift+F: 검색 창을 표시할 수 있다. Ctrl+Shift+G: 소스 제어 창을 표시할 수 있다. Ctrl+Shift+D: 디버그 창을 표시할 수 있다. Ctrl+Shift+X: 확장 창을 표시할 수 있다. Ctrl+Shift+H: 파일 내 교체 기능을 사용할 수 있다. Ctrl+Shift+J: 검색 세부 사항을 토글 할 수 있다. Ctrl+Shift+C: 새 명령 프롬프트나 터미널을 열 수 있다. Ctrl+K Ctrl+H: 출력 패널을 표시할 수 있다. Ctrl+Shift+V: Markdown 미리 보기를 열 수 있다. Ctrl+K V: Markdown 미리 보기를 옆에 열 수 있다. Ctrl+K Z: Zen 모드를 활성화할 수 있다. Esc를 두 번 눌러 종료할 수 있다. 검색 및 교체 기능 Ctrl+F: 현재 파일에서 찾기 기능을 사용할 수 있다. Ctrl+H: 현재 파일에서 교체 기능을 사용할 수 있다. F3 / Shift+F3: 다음/이전 찾기 결과로 이동할 수 있다. Alt+Enter: 찾기 결과의 모든 항목을 선택할 수 있다. Ctrl+D: 다음 찾기 결과를 선택에 추가할 수 있다. Ctrl+K Ctrl+D: 마지막 선택 항목을 다음 찾기 결과로 이동할 수 있다. 탐색 및 이동 Ctrl+T: 모든 심볼을 표시할 수 있다. Ctrl+G: 특정한 줄로 이동할 수 있다. Ctrl+P: 특정 파일로 이동할 수 있다. Ctrl+Shift+O: 특정 심볼로 이동할 수 있다. Ctrl+Shift+M: 문제 패널을 표시할 수 있다. F8: 다음 오류 또는 경고로 이동할 수 있다. Shift+F8: 이전 오류 또는 경고로 이동할 수 있다. Ctrl+Shift+Tab: 편집기 그룹 히스토리를 탐색할 수 있다. Ctrl+Alt+-: 뒤로 이동할 수 있다. Ctrl+Shift+- : 앞으로 이동할 수 있다. ...

6월 21, 2024 · 6 분 · 1124 단어 · In-Jun Hwang

플로이드-워셜(Floyd-Warshall) 알고리즘 알아보기

플로이드-워셜 알고리즘 모든 정점에서 모든 정점까지의 최단 경로를 찾는 알고리즘이다. 플로이드-워셜 알고리즘은 음수 가중치가 있는 그래프에서도 사용할 수 있다. 음의 사이클이 있는 경우에도 사용할 수 있다. 다이나믹 프로그래밍을 이용하여 구현한다. 점화식 D_{ij} = \min(D_{ij}, D_{ik} + D_{kj}) 순서 2차원 배열을 초기화한다. 3중 반복문을 사용하여 모든 정점을 탐색한다. 점화식을 사용하여 최단 경로를 갱신한다. 예제 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 #include <iostream> #include <vector> using std::cin; using std::cout; using std::min; using std::vector; #define INF 1000000000 int main() { int n, m; cin >> n >> m; vector<vector<int>> graph(n + 1, vector<int>(n + 1, INF)); for (int i = 1; i <= n; i++) { graph[i][i] = 0; } for (int i = 0; i < m; i++) { int a, b, c; cin >> a >> b >> c; graph[a][b] = c; } for (int k = 1; k <= n; k++) { for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { graph[i][j] = min(graph[i][j], graph[i][k] + graph[k][j]); } } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { if (graph[i][j] == INF) { cout << "INF "; } else { cout << graph[i][j] << ' '; } } cout << '\n'; } return 0; } 장점 모든 정점에서 모든 정점까지의 최단 경로를 구할 수 있다. 음수 가중치가 있는 그래프에서도 사용할 수 있다. 단점 한 정점에서 다른 정점으로 가는 최단 경로를 구할 때는 다익스트라 알고리즘이 더 빠르다. 음수 사이클이 있는 경우에는 최단 경로를 구할 수 없다. 시간 복잡도 플로이드-워셜 알고리즘의 시간 복잡도는 O(n^3)이다. 이때 n은 정점의 개수이다.

6월 17, 2024 · 2 분 · 321 단어 · In-Jun Hwang

벨만-포드(Bellman-Ford) 알고리즘 알아보기

벨만-포드 알고리즘 최단 경로를 찾는 알고리즘 중 하나이다. 벨만-포드 알고리즘은 시작 정점에서 다른 모든 정점까지의 최단 경로를 찾는 알고리즘이다. 다익스트라 알고리즘과 유사하지만, 음수 가중치가 있는 그래프에서도 사용할 수 있다. 순서 시작 정점에서 각 정점까지의 거리를 저장하는 배열을 초기화한다. 시작 정점을 방문 처리한다. 시작 정점에서 다른 정점까지의 거리를 갱신한다. 위 과정을 정점의 개수 - 1번 반복한다. 음수 사이클이 있는지 확인한다. 예제 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 #include <iostream> #include <vector> using std::cin; using std::cout; using std::pair; using std::vector; #define INF 1000000000 int main() { int n, m; cin >> n >> m; vector<vector<pair<int, int>>> graph(n + 1); vector<int> dist(n + 1, INF); for (int i = 0; i < m; i++) { int u, v, w; cin >> u >> v >> w; graph[u].push_back({v, w}); } int start; cin >> start; dist[start] = 0; for (int i = 0; i < n - 1; i++) { for (int u = 1; u <= n; u++) { for (auto p : graph[u]) { int v = p.first; int w = p.second; if (dist[u] != INF && dist[v] > dist[u] + w) { dist[v] = dist[u] + w; } } } } for (int u = 1; u <= n; u++) { for (auto p : graph[u]) { int v = p.first; int w = p.second; if (dist[u] != INF && dist[v] > dist[u] + w) { cout << "음수 사이클이 존재합니다.\n"; return 0; } } } for (int i = 1; i <= n; i++) { if (dist[i] == INF) { cout << "INF\n"; } else { cout << dist[i] << '\n'; } } return 0; } 장점 벨만-포드 알고리즘은 음수 가중치가 있는 그래프에서도 사용할 수 있다. ...

6월 17, 2024 · 2 분 · 374 단어 · In-Jun Hwang

다익스트라(Dijkstra) 알고리즘 알아보기

다익스트라 알고리즘 최단 경로를 찾는 알고리즘 중 하나이다. 다익스트라 알고리즘은 시작 정점에서 다른 모든 정점까지의 최단 경로를 찾는 알고리즘이다. 너비 우선 탐색(BFS)와 유사하다. 각 정점까지의 최단 거리를 저장하면서 탐색한다. 순서 시작 정점에서 각 정점까지의 거리를 저장하는 배열을 초기화한다. 시작 정점을 방문 처리한다. 큐에 시작 정점을 넣는다. 큐가 빌 때까지 다음을 반복한다. 큐에서 정점을 꺼낸다. 해당 정점과 연결된 정점들을 탐색한다. 시작 정점에서 해당 정점까지의 거리가 시작 정점에서 현재 정점까지의 거리 + 현재 정점에서 해당 정점까지의 거리보다 크다면, 시작 정점에서 해당 정점까지의 거리를 갱신한다. ...

6월 17, 2024 · 2 분 · 378 단어 · In-Jun Hwang

CI/CD란 무엇인가?

CI(Continuous Integration)란 CI(Continuous Integration)는 지속적 통합을 의미한다. 코드가 작성되고 변경될 때마다 자동으로 빌드하고 테스트하는 과정이다. 쉽게 말해, 여러 개발자들이 작성한 코드를 자동으로 통합하는 과정이라고 할 수 있다. CI의 작동 방식 개발자가 코드를 수정한다 코드를 저장소(예: GitHub)에 올린다 CI 도구가 자동으로 코드를 가져와 빌드한다 테스트를 실행한다 결과를 개발자에게 알려준다 CI의 장점 코드 문제를 빨리 발견할 수 있다 수동으로 빌드하고 테스트하는 시간을 줄일 수 있다 품질 높은 코드를 유지할 수 있다 CD(Continuous Deployment)란 CD(Continuous Deployment)는 지속적 배포를 의미한다. CI 과정을 통과한 코드를 자동으로 서비스에 반영하는 과정이다. 즉, 개발한 내용을 사용자가 바로 사용할 수 있게 만드는 과정이다. ...

6월 10, 2024 · 1 분 · 191 단어 · In-Jun Hwang