vim 텍스트 오브젝트 — ciw · ci" · di( 가 바꾸는 것
커서를 정확한 자리에 두지 않아도 편집할 수 있게 해 주는 텍스트 오브젝트를 정리했습니다. 실무에서 가장 많이 쓰는 vim 기능입니다.
커서를 정확히 옮기는 시간을 없앤다
초보자의 vim 편집은 대개 이렇습니다. 낱말 앞까지 커서를 옮기고(b 또는 h 여러 번), 그다음 cw 를 칩니다. 커서를 옮기는 데 드는 시간이 편집보다 깁니다.
텍스트 오브젝트는 그 단계를 없앱니다. ciw 는 '커서가 놓인 낱말'을 바꿉니다. 낱말의 어느 글자에 서 있어도 결과가 같습니다.
i 와 a
오브젝트는 두 글자로 씁니다. 앞 글자는 범위, 뒤 글자는 대상입니다.
i 는 inner — 안쪽만. a 는 around — 감싼 것까지. 예를 들어 "hello" 에서 ci" 는 hello 만 바꾸고, ca" 는 따옴표를 포함해 지웁니다.
| 오브젝트 | 대상 | 보기 |
|---|---|---|
| iw / aw | 낱말 | ciw 변수명 바꾸기, daw 낱말과 공백 지우기 |
| i" / a" | 따옴표 안 | ci" 문자열 내용 바꾸기 |
| i( / a( (ib/ab) | 소괄호 안 | di( 함수 인자 비우기 |
| i{ / a{ (iB/aB) | 중괄호 안 | ci{ 블록 내용 바꾸기 |
| i[ / a[ | 대괄호 안 | di[ 배열 비우기 |
| it / at | HTML 태그 안 | cit 태그 내용 바꾸기 (연습기 미지원) |
| ip / ap | 문단 | dap 문단 지우기 (연습기 미지원) |
실무에서 쓰는 다섯 가지
diw 와 daw 의 차이는 공백입니다. one two three 에서 두 번째 낱말에 서서 diw 를 하면 one three (공백 둘)가 되고, daw 를 하면 one three 가 됩니다. 문장을 고칠 때는 daw, 자리를 남겨 두고 다시 칠 때는 ciw 입니다.
- ciw 변수·함수 이름 바꾸기 — 가장 많이 쓴다
- ci" 문자열 내용만 갈아 끼우기
- di( 함수 호출의 인자를 전부 비우기
- ci{ 블록 안을 다시 쓰기
- daw 낱말과 공백을 함께 지워 문장을 자연스럽게 유지
왜 이것이 '되풀이'와 잘 맞는가
ciw 로 만든 변경은 커서 위치에 의존하지 않습니다. 그래서 다음 대상으로 옮겨 . 을 누르면 같은 편집이 그대로 적용됩니다. * 로 같은 이름을 찾아가며 . 을 누르면 간단한 이름 바꾸기가 끝납니다.
이 조합(오브젝트 + 되풀이)이 vim 사용자가 '편집 속도'라고 말하는 것의 대부분입니다.
자주 묻는 질문
ciw 와 cw 는 어떻게 다릅니까?
cw 는 커서 위치부터 낱말 끝까지 바꿉니다. 낱말 가운데에 서 있으면 앞부분이 남습니다. ciw 는 낱말 전체를 바꿉니다.
괄호 안에 커서를 두어야 하나요?
괄호 안이면 어디든 됩니다. 괄호 위에 서 있어도 동작합니다. 중첩된 괄호에서는 커서를 감싸는 가장 가까운 짝이 대상입니다.
다른 가이드
-
vim 종료·저장 방법 — :wq 부터 강제 종료까지
vim 에서 나가는 방법을 상황별로 정리했습니다. 저장하고 나가기, 저장 없이 나가기, 읽기 전용 파일 강제 저장, E37 오류 대처까지 실제 동작 기준으로 설명합니다.
-
vim 모드 완전 이해 — 노멀·입력·비주얼·명령줄
vim 이 모드를 쓰는 이유와 네 가지 모드의 차이, 모드 사이를 오가는 키를 정리했습니다. 모드를 이해하면 vim 의 나머지는 전부 이 위에 얹힙니다.
-
vim 커서 이동 총정리 — 방향키를 놓는 순서
hjkl 부터 w b e f t % gg G 까지, vim 이동 명령을 쓰는 순서대로 정리했습니다. 이동은 그 자체로도 쓰고 연산자 뒤에 붙여 범위로도 씁니다.
-
vim 연산자 — d c y 와 [연산자][이동] 문법
vim 편집의 문법은 [개수][연산자][개수][이동] 하나입니다. dw cw yy D C 를 외우는 대신 조합 규칙을 이해하는 방법을 설명합니다.
-
vim 검색과 치환 — / ? n N 과 :%s 완전 정리
vim 검색 이동과 :s 치환 문법을 플래그와 범위까지 정리했습니다. 확인하며 치환하는 c 플래그, 대소문자 무시 옵션도 다룹니다.
-
처음 쓰는 .vimrc — 꼭 넣을 설정 12줄
vim 을 설치하고 처음 만드는 .vimrc 에 넣을 설정을 이유와 함께 정리했습니다. 줄번호, 검색 옵션, 들여쓰기, 클립보드까지.