vi 편집: 삭제·복사·실행취소
쉽게 말하면
vi의 명령 상태에서 줄 지우기(dd), 복사(yy), 붙여넣기(p), 되돌리기(u)를 하는 법이에요. 앞에 숫자를 붙이면 그만큼 반복해요(3dd = 세 줄 지우기).
시험용 정의
vi 명령 모드의 편집은 d(삭제), y(복사, yank), p(붙여넣기), u(실행 취소)가 중심이다. 삭제한 내용은 버퍼에 남아 p로 붙여넣을 수 있어 사실상 잘라내기다.
비유로 이해하기
문장 편집용 가위(d)와 복사기(y)와 풀(p)이다. 숫자를 앞에 붙이면 "세 장 잘라"처럼 여러 번을 한 번에 시킨다.
자세히
삭제
| 키 | 동작 |
|---|---|
| x / X | 커서 글자 / 커서 앞 글자 삭제 |
| dw | 단어 삭제 |
| dd | 줄 삭제 |
| 숫자dd (3dd) | 여러 줄 삭제 |
| D (= d$) | 커서부터 줄 끝까지 삭제 |
| d0 | 줄 처음부터 커서 앞까지 |
| dG | 커서 줄부터 파일 끝까지 |
복사·붙여넣기
| 키 | 동작 |
|---|---|
| yy (= Y) | 줄 복사 |
| 숫자yy (5yy) | 여러 줄 복사 |
| yw | 단어 복사 |
| p | 커서 뒤(줄 단위면 아래 줄)에 붙여넣기 |
| P | 커서 앞(줄 단위면 위 줄)에 붙여넣기 |
수정·되돌리기·기타
| 키 | 동작 |
|---|---|
| r | 글자 하나 바꾸기(replace) |
| cw | 단어를 지우고 입력 모드 |
| cc | 줄을 지우고 입력 모드 |
| J | 아래 줄을 현재 줄에 이어 붙이기(join) |
| ~ | 대소문자 바꾸기 |
| u | 실행 취소(undo) |
| Ctrl+r | 다시 실행(redo, vim) |
| U | 현재 줄의 변경 전부 취소 |
| . | 직전 편집 명령 반복 |
시험에 이렇게 나와요
- 방금 삭제한 줄을 되살리기(실행 취소) →
u - 현재 줄부터 세 줄 복사 →
3yy, 붙여넣기 →p
확인 문제
Q1. vi 명령 모드에서 3dd를 누르면?
- 3번째 줄로 이동
- 3줄 복사
- 현재 줄부터 3줄 삭제
- 3글자 삭제
정답 보기
3번 현재 줄부터 3줄 삭제
vi 명령 앞의 숫자는 반복 횟수다. dd는 한 줄 삭제(잘라내기)이므로 3dd는 현재 줄부터 세 줄을 삭제한다. 3yy는 세 줄 복사, 3x는 세 글자 삭제.
Q2. vi 명령 모드에서 실수로 dd로 줄을 지웠다. 바로 되돌리는 키는?
- p
- r
- .
- u
정답 보기
4번 u
u다. undo(되돌리기)의 u다. p는 지운 내용을 붙여 넣는다.
Q3. vi에서 현재 줄을 포함해 5줄을 복사하는 명령은?
- 5p
- 5dd
- 5yy
- y5
정답 보기
3번 5yy
5yy다. yy가 한 줄 복사(yank)이고 앞에 숫자를 붙이면 그만큼 복사한다. 5dd는 5줄을 지운다.
Q4. 커서 위치부터 줄 끝까지 삭제하는 명령은?
- D
- x
- dw
- dd
정답 보기
1번 D
D다. d$와 같다. dd는 줄 전체, dw는 단어 하나, x는 글자 하나를 지운다.
Q5. 방금 한 편집을 취소하는 명령은?
- U
- r
- u
- .
정답 보기
3번 u
u(undo)다. .은 바로 앞 명령을 반복하고, U는 현재 줄의 변경을 모두 되돌리며, r은 글자 하나를 바꾼다.
Q6. 현재 줄과 다음 줄을 한 줄로 합치는 명령은?
- M
- j
- J
- cc
정답 보기
3번 J
대문자 J(join). 소문자 j는 아래로 이동.
헷갈리기 쉬운 O·X
p는 커서 위치 앞에 붙여넣는다.
정답 보기
X p는 뒤(아래), P가 앞(위).
dd로 삭제한 줄은 p로 붙여넣을 수 있다.
정답 보기
O 삭제는 버퍼에 저장된다(잘라내기).
x는 커서 앞의 글자를 지운다.
정답 보기
X x는 커서 위치 글자, X가 커서 앞 글자.