DaleSchool

기본 편집

입문15분

학습 목표

  • x, dd로 삭제할 수 있다
  • u, Ctrl+r로 실행 취소와 다시 실행을 할 수 있다
  • yy, p로 복사와 붙여넣기를 할 수 있다
  • . 명령으로 마지막 편집을 반복할 수 있다

동작하는 코드

아래 에디터에서 x, dd, yy, p, u, . 명령을 연습해보세요. Normal 모드 상태에서 키를 눌러 바로 편집할 수 있습니다.

todo.txtNORMAL
Loading Vim…

실제 터미널에서는 이렇게 파일을 만들고 엽니다:

cat << 'EOF' > todo.txt
# 오늘 할 일
- 이메일 확인
- 코드 리뷰
- 버그 수정
- 테스트 작성
- 배포 준비
- 회의 참석
EOF
vim todo.txt

삭제해보기

Normal 모드에서 삭제 명령을 써볼게요:

동작기억법
x커서 위의 글자 하나 삭제지우개로 X표
dd줄 전체 삭제delete 두 번
D커서부터 줄 끝까지 삭제Delete to end

"회의 참석" 줄에 커서를 놓고 dd를 눌러보세요. 줄 전체가 사라집니다!

"이메일 확인" 줄에서 D를 눌러보면, 커서 위치부터 줄 끝까지만 사라져요.

실행 취소

실수했어요? 걱정 마세요:

동작
u실행 취소 (undo)
Ctrl+r다시 실행 (redo)

방금 삭제한 것을 되돌리려면 u를 누르세요. 여러 번 누르면 계속 이전 상태로 돌아갑니다. 너무 많이 되돌렸으면 Ctrl+r로 앞으로 갈 수 있어요.

Vim의 실행 취소는 무제한이에요. 파일을 열고 나서 한 모든 작업을 되돌릴 수 있습니다.

직접 수정하기

복사와 붙여넣기

Vim에서는 복사를 yank라고 불러요:

동작기억법
yy줄 전체 복사yank
p아래에 붙여넣기put after
P위에 붙여넣기Put before

"코드 리뷰" 줄에 커서를 놓고 이렇게 해보세요:

yy    → "코드 리뷰" 줄 복사
p     → 아래에 붙여넣기

결과:

- 코드 리뷰
- 코드 리뷰    ← 복사된 줄!
- 버그 수정

dd로 삭제한 줄도 사실 "잘라내기"입니다. dd 후에 다른 곳에서 p를 누르면 거기에 붙여넣을 수 있어요. 줄 순서를 바꿀 때 편하죠:

dd    → "버그 수정" 줄 잘라내기
k     → 위로 이동
p     → 여기에 붙여넣기

점(.) 명령 — "한 번 더!"

.마지막으로 한 편집을 반복합니다:

dd    → "테스트 작성" 줄 삭제
.     → 다음 줄도 삭제 (dd 반복)
.     → 또 다음 줄도 삭제

완료된 TODO 항목을 연달아 지울 때, dd 한 번 + . 여러 번이면 끝이에요.

실제로 설정 파일을 정리할 때도 유용합니다:

# nginx.conf 에서 주석 줄 정리하기
server {
    # 이건 필요없는 주석
    listen 80;
    # 이것도 삭제할 주석
    server_name example.com;
    # 이것도
    root /var/www/html;
}

첫 번째 주석 줄에서 dd, 다음 주석 줄로 이동해서 ., 또 이동해서 . — 빠르죠?

"왜?" — 삭제가 곧 잘라내기인 이유

Vim에는 "잘라내기" 명령이 따로 없어요. dd가 삭제이면서 동시에 잘라내기입니다. 삭제한 텍스트는 **레지스터(register)**라는 임시 저장소에 들어가요.

이게 왜 좋냐면:

1. dd로 줄을 삭제 (= 레지스터에 저장됨)
2. 원하는 위치로 이동
3. p로 붙여넣기

"삭제 후 다른 곳에 넣기"가 자연스럽게 되는 거예요. 일반 에디터에서 잘라내기 → 붙여넣기를 하는 것보다 더 직관적입니다.

삭제 명령 모음

자주 쓰는 삭제 명령을 정리하면:

동작
x커서 위 글자 하나
X커서 앞 글자 하나 (Backspace처럼)
dd줄 전체
D커서부터 줄 끝까지
3dd3줄 삭제
dw다음 단어까지 삭제
d$줄 끝까지 삭제 (= D)
d0줄 처음까지 삭제

d + 이동 명령 조합은 다음 레슨에서 더 자세히 배울 거예요.

숫자 접두사로 반복

삭제와 복사에도 숫자를 붙일 수 있어요:

3dd   → 3줄 삭제
5yy   → 5줄 복사
3x    → 글자 3개 삭제

TODO 리스트에서 완료된 항목 5개를 한 번에 지울 때 5dd면 끝!

심화 학습

  1. vim todo.txt로 파일을 여세요.
  2. 아무 줄에서 dd로 줄을 삭제해보세요.
  3. u로 되돌린 뒤, Ctrl+r로 다시 실행해보세요.
  4. "이메일 확인" 줄을 yy로 복사하고, 파일 맨 끝으로 이동해서 p로 붙여넣어보세요.
  5. "배포 준비" 줄을 dd로 잘라내고, "코드 리뷰" 아래로 이동해서 p로 붙여넣어 순서를 바꿔보세요.
  6. dd를 한 번 누른 뒤, .으로 연달아 줄을 삭제해보세요.
  7. u를 여러 번 눌러 모든 변경을 되돌리고, :q!로 나가보세요.

퀴즈

현재 줄 전체를 삭제하는 명령은?

실행 취소(u)를 너무 많이 했을 때, 다시 앞으로 가려면?

.(점) 명령의 역할은?