본문으로 건너뛰기

Cursor에서 다중 커서 편집 마스터하기

다중 커서 편집은 현대 코드 편집기의 가장 강력한 기능 중 하나이며, Cursor는 전통적인 다중 커서 기법을 AI 지원과 결합하여 한 단계 더 발전시켰습니다. 이 가이드에서는 기본 선택부터 고급 정규식 기반 편집까지 코드 조작 방식을 변화시킬 모든 것을 다룹니다.

Multi-cursor editing in Cursor

다중 커서 편집이 중요한 이유​

여러 위치에서 동일한 변경을 해야 할 때, 다중 커서 편집은 찾기-바꾸기나 수동 편집에 비해 엄청난 시간을 절약합니다. 일반적인 시나리오는 다음과 같습니다:

  • 여러 줄에서 변수 이름 변경
  • 여러 항목에 접두사 또는 접미사 추가
  • 데이터 형식 변환 (JSON에서 TypeScript 인터페이스 등)
  • 괄호, 따옴표, 구분자 제거 또는 추가
  • 코드 또는 주석 정렬
팁

변경 사항이 구조적으로 유사하지만 동일하지 않을 때 다중 커서 편집이 빛을 발합니다. 완전히 동일한 교체에는 찾기-바꾸기가 여전히 더 빠를 수 있습니다.

기본 다중 커서 기법​

Alt+클릭 (macOS에서는 Option+클릭)​

여러 커서를 배치하는 가장 직관적인 방법은 Alt(또는 macOS의 Option)를 누른 상태에서 원하는 위치를 클릭하는 것입니다.

사용 방법:

  1. Alt / Option 키를 누르세요
  2. 커서를 원하는 각 위치를 클릭하세요
  3. 입력 시작 -- 모든 커서가 동시에 텍스트를 삽입합니다
// Before: Alt+클릭으로 각 줄 시작에 커서 배치
const user = { name: 'Alice' };
const admin = { name: 'Bob' };
const guest = { name: 'Charlie' };

// 각 커서에서 'export ' 입력 후
export const user = { name: 'Alice' };
export const admin = { name: 'Bob' };
export const guest = { name: 'Charlie' };
정보

최대 10,000개의 커서를 배치할 수 있습니다. 실제로는 100개 이상이면 시각적으로 관리하기 어려워집니다.

Cmd+D / Ctrl+D -- 다음 찾기 일치에 선택 추가​

같은 단어나 선택 영역의 여러 발생을 선택하는 가장 빠른 방법입니다.

기본 워크플로우:

  1. 단어나 텍스트 세그먼트를 선택하세요
  2. 다음 발생을 선택하려면 Cmd+D(macOS) 또는 Ctrl+D(Windows/Linux)를 누르세요
  3. 더 많은 발생을 선택하려면 반복하세요
  4. 모든 선택 영역을 동시에 편집하세요
// 'status'를 선택하고 Cmd+D를 세 번 누르세요
interface Task {
status: 'pending';
status: 'active';
status: 'completed';
}

// 모두 'state'로 변경
interface Task {
state: 'pending';
state: 'active';
state: 'completed';
}

발생 건너뛰기:

실수로 변경하지 않으려는 발생을 선택한 경우, Cmd+K Cmd+D(macOS) 또는 Ctrl+K Ctrl+D(Windows/Linux)를 눌러 현재 선택을 건너뛰고 다음으로 이동하세요.

모든 발생을 한 번에 선택:

파일에서 현재 단어의 모든 발생을 선택하려면 Cmd+Shift+L(macOS) 또는 Ctrl+Shift+L(Windows/Linux)를 누르세요.

경고

대형 파일에서 "모든 발생 선택"을 사용할 때 주의하세요. 주석이나 문자열에서 의도하지 않게 일치하는 항목을 선택할 수 있습니다.

열 선택 (박스 선택)​

열 선택을 사용하면 텍스트의 직사각형 블록을 선택하여 선택한 각 줄 시작 부분에 커서를 배치할 수 있습니다.

마우스 기반 열 선택​

  • Windows/Linux: Shift+Alt를 누른 상태에서 드래그
  • macOS: Shift+Option를 누른 상태에서 드래그
# 접두사를 열 선택하여 교체
old_prefix_item1 = 100
old_prefix_item2 = 200
old_prefix_item3 = 300
old_prefix_item4 = 400

# 'old_prefix_'를 열 선택하고 'new_' 입력 후
new_item1 = 100
new_item2 = 200
new_item3 = 300
new_item4 = 400

키보드 기반 열 선택​

키보드 단축키를 사용하여 여러 커서를 배치하세요:

단축키작업
Cmd+Option+Down / Ctrl+Alt+Down아래 줄에 커서 추가
Cmd+Option+Up / Ctrl+Alt+Up위 줄에 커서 추가
Cmd+Option+Shift+Down / Ctrl+Alt+Shift+Down아래로 열 선택 확장
Cmd+Option+Shift+Up / Ctrl+Alt+Shift+Up위로 열 선택 확장
팁

열 선택은 표 형식 데이터, 정렬된 할당 또는 수직 구조가 있는 모든 코드에 완벽합니다.

고급 다중 커서 기법​

다중 커서로 찾기 및 바꾸기​

찾기 위젯은 정규식을 통해 다중 커서 작업을 지원합니다.

  1. Cmd+F / Ctrl+F로 찾기 열기
  2. 정규식 모드 활성화 (.* 아이콘)
  3. 캡처 그룹이 있는 패턴 입력
  4. 교체 시 $1, $2 등 사용
// console.log 문을 커스텀 로거로 변환
// Find: console\.log\((.*)\);
// Replace: logger.debug($1);

console.log('User logged in');
console.log('Data fetched');
console.log('Error occurred');

// Result:
logger.debug('User logged in');
logger.debug('Data fetched');
logger.debug('Error occurred');

정규식 다중 줄 편집​

복잡한 변환을 위해 정규식과 다중 커서를 결합하세요:

// 인터페이스 속성을 기본값이 있는 클래스 속성으로 변환
interface Config {
timeout: number;
retries: number;
enabled: boolean;
}

// Find: (\w+): (\w+);
// Replace: public $1: $2 = defaultValues.$1;

// Result:
public timeout: number = defaultValues.timeout;
public retries: number = defaultValues.retries;
public enabled: boolean = defaultValues.enabled;

줄 끝에 커서 생성​

여러 줄을 선택하고 Shift+Option+I(macOS) 또는 Shift+Alt+I(Windows/Linux)를 눌러 선택한 각 줄 끝에 커서를 배치하세요.

{
"name": "project"
"version": "1.0.0"
"description": "A sample project"
}

// 줄을 선택하고 Shift+Option+I를 누른 후 쉼표 추가
{
"name": "project",
"version": "1.0.0",
"description": "A sample project",
}

다중 커서 단축키 참고​

작업macOSWindows/Linux
클릭 위치에 커서 추가Option+클릭Alt+클릭
다음 발생 선택Cmd+DCtrl+D
모든 발생 선택Cmd+Shift+LCtrl+Shift+L
현재 항목 건너뛰고 다음 선택Cmd+K Cmd+DCtrl+K Ctrl+D
아래에 커서 추가Cmd+Option+DownCtrl+Alt+Down
위에 커서 추가Cmd+Option+UpCtrl+Alt+Up
열 선택 (마우스)Shift+Option+드래그Shift+Alt+드래그
줄 끝에 커서Shift+Option+IShift+Alt+I
마지막 커서 추가 취소Cmd+UCtrl+U
다음 커서에 포커스Cmd+F6Ctrl+F6

실무 워크플로우​

워크플로우 1: 대량 속성 이름 변경​

객체가 있고 여러 속성의 이름을 변경해야 하는 경우:

// 1단계: Cmd+D로 각 속성 이름에 커서 배치
const user = {
firstName: 'John',
firstName: 'Admin', // Oops, duplicate
firstName: 'Guest',
};

// 2단계: 이름 변경 후
const user = {
firstName: 'John',
lastName: 'Doe',
role: 'Admin',
};

워크플로우 2: JSON에서 TypeScript 생성​

JSON 스니펫을 TypeScript 인터페이스 속성으로 변환:

{
"id": 1,
"title": "Hello",
"completed": false
}
  1. JSON을 TypeScript 파일에 붙여넣기
  2. 다중 커서를 사용하여 각 줄 변환:
    • 키를 열 선택
    • readonly 접두사 추가
    • 값 뒤로 커서 이동
    • TypeScript 타입으로 교체
readonly id: number;
readonly title: string;
readonly completed: boolean;

워크플로우 3: 오류 처리 추가​

여러 API 호출을 try-catch로 감싸기:

// Before
const user = await fetchUser(id);
const posts = await fetchPosts(user.id);
const comments = await fetchComments(posts[0].id);

// 다중 커서 편집 후
const user = await fetchUser(id).catch(handleError);
const posts = await fetchPosts(user.id).catch(handleError);
const comments = await fetchComments(posts[0].id).catch(handleError);

다중 커서와 AI 결합​

Cursor의 AI 기능은 다중 커서 편집과 함께 작동합니다:

  1. 다중 커서로 여러 함수 선택
  2. Cmd+K를 눌러 인라인 편집 열기
  3. "JSDoc 주석 추가"와 같은 프롬프트 입력
  4. Cursor가 모든 선택한 블록에 변환을 적용합니다
// Before
function add(a: number, b: number) { return a + b; }
function subtract(a: number, b: number) { return a - b; }
function multiply(a: number, b: number) { return a * b; }

// AI 다중 커서 편집 후
/**
* Adds two numbers
* @param a - First number
* @param b - Second number
* @returns Sum of a and b
*/
function add(a: number, b: number) { return a + b; }

/**
* Subtracts two numbers
* @param a - First number
* @param b - Second number
* @returns Difference of a and b
*/
function subtract(a: number, b: number) { return a - b; }

/**
* Multiplies two numbers
* @param a - First number
* @param b - Second number
* @returns Product of a and b
*/
function multiply(a: number, b: number) { return a * b; }

일반적인 함정​

함정해결책
잘못된 위치의 커서Escape를 누르고 다시 시작; 커서 실행 취소(Cmd+U) 사용
주석/문자열에서의 실수로 인한 편집"모든 발생 선택"을 선택적으로 사용
추적할 수 없는 너무 많은 커서더 작은 청크로 작업, 한 번에 5-10개의 커서
일관되지 않은 들여쓰기로 열 선택 깨짐열 선택 전 탭/공백 일관성 확인
정규식 교체가 원하지 않는 영역에 영향적용 전 변경 사항 미리보기

요약​

Cursor의 다중 커서 편집은 대량 변경을 위한 외과적 정밀도를 제공합니다:

  • Alt+클릭으로 정확한 커서 배치
  • Cmd+D / Ctrl+D로 반복 패턴 선택
  • 수직 텍스트 조작을 위한 열 선택
  • 복잡한 변환을 위한 정규식 찾기-바꾸기
  • 지능형 대량 편집을 위해 AI(Cmd+K)와 결합

이 단축키를 마스터하는 데 시간을 투자하세요. 한 번에 여러 줄을 변경해야 할 때마다 그 투자가 보상됩니다.


마지막 업데이트: 2025년 7월. Cursor 단축키는 버전 및 구성에 따라 다를 수 있습니다.