C.W.K.
Stream
Lesson 07 of 08 · published

기본 편집 명령

~12 min · vim, editing, yank-paste

Level 0갇힌 자
0 XP0/35 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

Vim 의 편집 동사들

세 글자가 무게의 대부분을 들어: d = delete, y = yank (copy), c = change. 각자 motion (트랙 2) 과 text object (트랙 2) 와 합쳐져 작은 언어가 돼. 오늘은 독립 명령만 외워.

삭제

Vim 에서 삭제와 잘라내기는 같은 operation 이야 — 삭제된 텍스트가 unnamed register 에 저장돼서 paste 준비 완료. 별도 "cut" 키스트로크가 없는 건 중복이라서야.

Yank 와 paste

y 는 yank (copy) 만 하고 안 지움. p 는 커서 뒤에 paste, P 는 앞에. 라인 단위 yank (예: yy) 는 새 라인에 paste. 캐릭터 단위 yank 는 inline 으로 paste. Vim 이 yank 방법으로부터 어떤 동작인지 알아내.

Change 와 delete 의 차이

c 는 삭제하고 Insert mode 로 떨어뜨려. 대체 텍스트 칠 준비 완료. cw 는 단어 change; cc 는 라인 전체; C 는 커서부터 라인 끝까지. "이거 지우고, 타이핑 시작" 이라고 생각될 때마다 change 를 잡아.

Undo 와 redo

u 는 한 변경 undo. Ctrl-r 은 마지막 undo 를 redo. Vim 의 undo 트리는 buffer 단위고 저장 후에도 살아남아. set undofile (트랙 4) 로 Vim 재시작 후에도 살아남아. U 는 현재 라인의 모든 변경 undo — "이 라인 안 건드린 걸로" 에 유용.

동사가 합쳐져. d + w = dw (단어 삭제). y + $ = y$ (라인 끝까지 yank). c + i" = ci" (인용부 안 change). 트랙 2 전체가 이 원칙을 진지하게 받아들이면 일어나는 일이야.

매 분마다 쓰는 작은 동사들

x 는 커서 위 캐릭터 삭제 (dl 한 키 버전). r 은 단일 캐릭터 대체 — r 누르고 새 캐릭터. ~ 는 case 토글. J 는 현재 라인을 다음 라인과 join, 영리하게 단일 스페이스 끼워.

Code

삭제 명령·vim
x      " 커서 위 캐릭터 삭제
X      " 커서 앞 캐릭터 삭제 (backspace 같음)
dd     " 라인 전체 삭제
D      " 커서부터 라인 끝까지 삭제
dw     " 다음 단어 시작까지 삭제
d$     " 라인 끝까지 (D 와 동일)
d0     " 라인 시작까지 삭제
dG     " 현재 라인부터 파일 끝까지 삭제
dgg    " 현재 라인부터 파일 시작까지 삭제
Yank 와 paste·vim
yy     " 라인 전체 yank
Y      " 라인 전체 yank (yy 와 동일)
yw     " 다음 단어 시작까지 yank
y$     " 라인 끝까지 yank
yiw    " inner word yank (트랙 2 미리보기)
p      " 커서 뒤 / 라인 아래 paste
P      " 커서 앞 / 라인 위 paste
"+y   " 시스템 클립보드 register 로 yank
"+p   " 시스템 클립보드에서 paste
Change — 삭제 + Insert mode·vim
cw      " 단어 change
cc      " 라인 전체 change
C       " 커서부터 라인 끝까지 change
ciw     " inner word change
ci"    " 더블 quote 안 change
ci(     " 괄호 안 change
Undo 와 그 친구들·vim
u       " 한 변경 undo
Ctrl-r  " redo
U       " 현재 라인의 모든 변경 undo (토글)
:undolist  " undo 트리 보기 (고급)
g-      " undo 트리에서 시간상 더 이전
g+      " undo 트리에서 시간상 더 이후

External links

Exercise

아무 코드 파일 열어. Insert mode 전혀 안 쓰고: (1) dd 로 함수 본문 라인씩 삭제, (2) yyp 로 라인 복제, (3) 한 번의 dd 와 한 번의 p 로 인접한 두 라인 swap, (4) J 두 번 눌러서 세 라인을 한 라인으로 join. Insert mode 안 쓰는 규율이 동사+motion 언어를 느끼게 강제해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.