엑셀에서 열 이름 40개를 복사해 왔는데, 각 줄을 따옴표로 감싸고 뒤에 쉼표를 붙여야 하는 상황을 떠올려 보세요. 한 줄에 5초씩만 걸려도 200초, 게다가 중간에 한 줄을 빼먹으면 문법 오류를 찾느라 더 걸립니다. 같은 작업을 VS Code 멀티커서로 하면 단축키 세 번에 15초면 끝납니다. 이번 글에서는 커서를 여러 개 만드는 방법부터, 줄 끝에 한 번에 커서를 꽂는 기술, 열 단위 박스 선택, 그리고 멀티커서로 하면 오히려 손해인 작업까지 정리합니다.
커서를 여러 개 만드는 세 가지 경로
멀티커서는 진입 방법이 크게 세 가지입니다. 상황에 따라 쓰는 게 다르니 셋 다 손에 익혀 두는 편이 좋습니다.
| 하는 일 | 윈도우 / 리눅스 | 맥 |
|---|---|---|
| 원하는 위치마다 커서 추가 | Alt + 클릭 | Option + 클릭 |
| 위/아래 줄에 커서 추가 | Ctrl + Alt + ↑ / ↓ | Option + Cmd + ↑ / ↓ |
| 같은 단어를 하나씩 추가 선택 | Ctrl + D | Cmd + D |
| 같은 단어 전부 선택 | Ctrl + Shift + L | Cmd + Shift + L |
| 선택한 줄들의 끝에 커서 추가 | Shift + Alt + I | Shift + Option + I |
| 커서 추가 한 단계 되돌리기 | Ctrl + U | Cmd + U |
| 커서 하나로 되돌아가기 | Esc | Esc |
마지막 두 개가 생각보다 중요합니다. 커서를 하나 잘못 찍었을 때 처음부터 다시 하는 사람이 많은데, Ctrl+U는 방금 추가한 커서만 취소합니다. 편집 내용은 건드리지 않고 커서 이력만 되돌린다는 점이 Ctrl+Z와 다릅니다.
가장 많이 쓰게 되는 것: Shift+Alt+I
도입부에서 말한 40줄 작업이 정확히 이 단축키의 영역입니다. 이름은 “선택한 각 줄의 끝에 커서 삽입”이고, 순서는 이렇습니다.
- 변환할 줄들을 드래그하거나
Shift+↓로 선택합니다. Shift+Alt+I— 선택한 모든 줄의 끝에 커서가 하나씩 생깁니다.- 따옴표와 쉼표를 입력합니다. 모든 줄에 동시에 들어갑니다.
Home을 누릅니다. 커서 전부가 각자 줄의 맨 앞으로 갑니다.- 여는 따옴표를 입력하고 끝냅니다.
# 엑셀에서 복사해 붙인 원본 (열 이름 40줄)
주문번호
주문일자
고객명
결제수단
...
# 목표: 파이썬 리스트로 만들기
COLUMNS = [
"주문번호",
"주문일자",
"고객명",
"결제수단",
]
4번이 핵심입니다. 커서가 여러 개일 때 Home과 End는 각 줄을 기준으로 움직입니다. 줄 길이가 달라도 전부 정확히 맨 앞·맨 끝으로 갑니다. 반면 ← → 화살표는 글자 수만큼 움직이므로 줄 길이가 다르면 위치가 어긋납니다. 멀티커서 편집이 어긋나는 이유의 절반은 여기입니다 — 이동은 Home, End, Ctrl+←(단어 단위)로 하세요.
Ctrl+D 와 Ctrl+Shift+L 의 차이
둘 다 같은 단어를 골라 고치는 단축키인데 성격이 다릅니다. Ctrl+D는 하나씩 확인하며 추가하고, Ctrl+Shift+L은 파일 안의 일치 항목을 한 번에 전부 잡습니다.
- 선택 없이
Ctrl+D를 누르면 커서가 놓인 단어를 단어 단위로 잡습니다. 그래서user를 잡을 때username의 일부는 걸리지 않습니다. - 먼저 드래그해서 범위를 만든 뒤
Ctrl+D를 누르면 그 문자열 그대로 찾습니다. 부분 문자열도 잡힙니다. - 건너뛰고 싶은 항목이 나오면
Ctrl+K Ctrl+D입니다. 마지막 선택을 다음 일치로 옮겨 줍니다. - 찾기 창에서
Ctrl+F로 조건을 세밀하게 잡은 다음Alt+Enter를 누르면 그 검색 결과 전부에 커서가 생깁니다. 대소문자 구분·정규식 옵션을 쓸 수 있어 제일 정확합니다.
실무에서 제일 안전한 순서는 Ctrl+F → 옵션 켜기 → Alt+Enter입니다. Ctrl+Shift+L은 빠르지만 의도하지 않은 곳까지 잡아 놓고 모른 채 타이핑하는 사고가 나기 쉽습니다.
열(박스) 선택 — 세로로 잘라내야 할 때
로그나 고정폭 텍스트에서 특정 구간만 세로로 뽑아야 할 때가 있습니다. 이건 멀티커서와 별개 기능인 열 선택입니다.
| 방법 | 윈도우 / 리눅스 | 맥 |
|---|---|---|
| 마우스로 박스 드래그 | Shift + Alt + 드래그 | Shift + Option + 드래그 |
| 키보드로 박스 확장 | Ctrl + Shift + Alt + 방향키 | Shift + Option + Cmd + 방향키 |
| 모드 자체를 켜 두기 | Ctrl+Shift+P → Column Selection Mode | 동일 |
마지막 방법은 한 번 켜면 평소 드래그가 모두 박스 선택으로 바뀝니다. 여러 번 잘라낼 게 있을 때 편하고, 다 끝나면 반드시 다시 끄세요 — 켜 둔 걸 잊으면 평범한 드래그가 이상하게 동작해서 한참 헤매게 됩니다. 화면 하단 상태 바에 표시가 뜨니 그걸 확인하면 됩니다.
붙여넣기가 커서 수를 센다
잘 안 알려진 기능인데 한번 알면 자주 씁니다. 클립보드에 있는 줄 수와 커서 개수가 같으면, VS Code가 줄을 하나씩 나눠서 붙여 넣습니다.
# 클립보드 (3줄)
localhost
5432
mydb
# 커서가 3개 있는 상태에서 Ctrl+V
DB_HOST=localhost
DB_PORT=5432
DB_NAME=mydb
# multiCursorPaste 를 "full" 로 바꾸면 세 줄 전체가 커서마다 들어갑니다
스프레드시트에서 값 한 열을 복사해 와 코드 여러 줄에 꽂아 넣을 때 특히 유용합니다. 이 동작을 원하지 않으면 editor.multiCursorPaste를 "full"로 바꾸면 커서마다 전체가 들어갑니다.
설정으로 손에 맞추기
서브라임 텍스트나 아톰에서 넘어온 분들은 Ctrl+클릭으로 커서를 추가하던 습관이 남아 있을 겁니다. 설정 한 줄로 바꿀 수 있습니다.
{
// Alt+클릭 대신 Ctrl+클릭으로 커서를 추가합니다 (서브라임/아톰 방식)
"editor.multiCursorModifier": "ctrlCmd",
// 클립보드 줄 수와 커서 수가 같으면 줄을 하나씩 나눠 붙입니다
"editor.multiCursorPaste": "spread",
// 커서 개수 상한 (기본 10000)
"editor.multiCursorLimit": 10000
}
다만 "ctrlCmd"로 바꾸면 원래 Ctrl+클릭이던 “정의로 이동”이 Alt+클릭으로 자리를 바꿉니다. 어느 쪽을 더 자주 쓰는지 생각해 보고 고르세요.
멀티커서와 짝을 이루는 명령 중에는 기본 단축키가 아예 없는 것도 있습니다. 줄 정렬과 중복 줄 제거가 대표적인데, 명령 팔레트에는 있지만 키가 비어 있어서 존재를 모르고 지나치기 쉽습니다.
// 파일 > 기본 설정 > 바로 가기 키 > 우측 상단 파일 아이콘(keybindings.json)
[
{
"key": "alt+s",
"command": "editor.action.sortLinesAscending",
"when": "editorTextFocus"
},
{
"key": "alt+shift+s",
"command": "editor.action.removeDuplicateLines",
"when": "editorTextFocus"
}
]
붙여넣은 목록에서 중복을 지우고 정렬한 다음 멀티커서로 형식을 맞추는 흐름이면, 이 두 개를 손에 두는 게 낫습니다. 다른 단축키는 개발자를 위한 단축키 모음에 정리해 뒀습니다.
멀티커서로 하면 안 되는 일
멀티커서가 익숙해지면 모든 일괄 편집을 이걸로 해결하려 들게 되는데, 더 나은 도구가 있는 경우가 분명히 있습니다.
| 하려는 일 | 멀티커서 대신 | 이유 |
|---|---|---|
| 변수·함수 이름 바꾸기 | F2 (기호 이름 바꾸기) | 문법을 이해하고 바꿔서, 주석·문자열 속 같은 글자는 건드리지 않습니다 |
| 여러 파일에 같은 수정 | Ctrl+Shift+H | 파일을 하나씩 열 필요가 없고 미리보기로 확인됩니다 |
| 규칙이 있는 변환 | 정규식 치환 | 줄 수가 수백이어도 한 번에 끝납니다 |
| import 정리·코드 서식 | 포매터 / 코드 액션 | 수동 편집보다 일관성이 보장됩니다 |
정규식 치환은 이런 식입니다. 앞에서 멀티커서로 했던 작업과 결과가 같습니다.
# Ctrl+H 로 치환 창을 열고 정규식 버튼(.*)을 켠 뒤
찾기: ^(\w+)$
바꾸기: "$1",
# 결과: 주문번호 → "주문번호",
#
# 여러 파일에 한꺼번에 적용해야 하면 Ctrl+Shift+H (파일에서 바꾸기)
기준은 단순합니다. 줄 수가 30줄을 넘거나 파일이 여러 개면 치환, 줄마다 손으로 판단할 게 있으면 멀티커서입니다. 멀티커서의 진짜 강점은 편집 결과를 눈으로 보면서 조정할 수 있다는 점이지, 처리량이 아닙니다.
실제로 걸려 넘어지는 지점
- 단축키가 OS에 먹히는 경우. 우분투에서
Ctrl+Alt+방향키는 작업 공간 전환이고, 윈도우에서도 인텔 그래픽 드라이버가Ctrl+Alt+방향키를 화면 회전에 쓰는 설정이 켜져 있을 수 있습니다. VS Code에 도달하지 않으므로 OS 쪽 단축키를 끄거나keybindings.json에서 다른 키로 바꾸세요. - 커서를 수백 개 만들었을 때. 타이핑 반응이 눈에 띄게 느려집니다. 이 정도 규모면 치환으로 넘어갈 신호입니다.
- 선택 영역이 겹칠 때.
Ctrl+D로 잡은 범위들이 서로 맞닿으면 VS Code가 자동으로 합칩니다. 의도한 개수와 달라질 수 있으니 커서를 찍은 뒤 화면을 한번 훑어보세요. - 되돌리기 단위. 멀티커서로 한 편집은
Ctrl+Z한 번에 전부 되돌아갑니다. 장점이지만, 중간 단계만 골라 되돌릴 수는 없다는 뜻이기도 합니다. - 자동 완성이 끼어드는 문제. 커서가 여러 개인 상태에서 타이핑하면 자동 완성 제안이 뜨고, 무심코
Enter나Tab을 누르면 전 커서에 엉뚱한 단어가 들어갑니다. 입력 중에는Esc로 제안창을 먼저 닫는 습관이 안전합니다.
마무리
지금 열려 있는 파일에서 아무 줄 몇 개를 선택하고 Shift+Alt+I를 눌러 보세요. 줄 끝마다 커서가 생기는 걸 한 번 보면 그다음부터는 저절로 쓰게 됩니다. 그 하나만 익숙해진 뒤 Ctrl+D, 그리고 Ctrl+F → Alt+Enter 순서로 늘려 가는 게 부담이 적습니다. 편집 환경 자체를 더 손보고 싶다면 VS Code 필수 확장 프로그램 정리도 함께 보세요.
다음 글에서는 AI로 회의록과 녹취 파일을 자동 정리하는 워크플로우를 다룹니다. 받아쓴 텍스트를 사람이 읽을 수 있는 회의록으로 바꾸는 단계까지 이어서 정리하겠습니다.