공든탑앱 열기

vi 편집: 삭제·복사·실행취소

리눅스마스터 2급 · 에디터 · 약 9분

쉽게 말하면

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현재 줄의 변경 전부 취소
.직전 편집 명령 반복

시험에 이렇게 나와요

확인 문제

Q1. vi 명령 모드에서 3dd를 누르면?

  1. 3번째 줄로 이동
  2. 3줄 복사
  3. 현재 줄부터 3줄 삭제
  4. 3글자 삭제
정답 보기

3번 현재 줄부터 3줄 삭제

vi 명령 앞의 숫자는 반복 횟수다. dd는 한 줄 삭제(잘라내기)이므로 3dd는 현재 줄부터 세 줄을 삭제한다. 3yy는 세 줄 복사, 3x는 세 글자 삭제.

Q2. vi 명령 모드에서 실수로 dd로 줄을 지웠다. 바로 되돌리는 키는?

  1. p
  2. r
  3. .
  4. u
정답 보기

4번 u

u다. undo(되돌리기)의 u다. p는 지운 내용을 붙여 넣는다.

Q3. vi에서 현재 줄을 포함해 5줄을 복사하는 명령은?

  1. 5p
  2. 5dd
  3. 5yy
  4. y5
정답 보기

3번 5yy

5yy다. yy가 한 줄 복사(yank)이고 앞에 숫자를 붙이면 그만큼 복사한다. 5dd는 5줄을 지운다.

Q4. 커서 위치부터 줄 끝까지 삭제하는 명령은?

  1. D
  2. x
  3. dw
  4. dd
정답 보기

1번 D

D다. d$와 같다. dd는 줄 전체, dw는 단어 하나, x는 글자 하나를 지운다.

Q5. 방금 한 편집을 취소하는 명령은?

  1. U
  2. r
  3. u
  4. .
정답 보기

3번 u

u(undo)다. .은 바로 앞 명령을 반복하고, U는 현재 줄의 변경을 모두 되돌리며, r은 글자 하나를 바꾼다.

Q6. 현재 줄과 다음 줄을 한 줄로 합치는 명령은?

  1. M
  2. j
  3. J
  4. cc
정답 보기

3번 J

대문자 J(join). 소문자 j는 아래로 이동.

헷갈리기 쉬운 O·X

p는 커서 위치 앞에 붙여넣는다.

정답 보기

X p는 뒤(아래), P가 앞(위).

dd로 삭제한 줄은 p로 붙여넣을 수 있다.

정답 보기

O 삭제는 버퍼에 저장된다(잘라내기).

x는 커서 앞의 글자를 지운다.

정답 보기

X x는 커서 위치 글자, X가 커서 앞 글자.

함께 보면 좋은 개념