캐릭터와 단어 에서 구조 로
w 나 $ 같은 motion 은 방향성이 있어 — 커서에서 어디론가 가. Text object 는 구조적 이야 — 주변에 의해 정의되는 영역을 묘사. "괄호 안", "이 단어 주변", "HTML 태그 안." 커서가 영역 안 어디에든 있을 수 있고 — Vim 이 경계를 알아내.
두 prefix
i= inner — 내용만, delimiter 제외.a= around ("a" thing) — 내용 + delimiter 또는 주변 whitespace.
그래서 i" 는 "더블 quote 안", a" 는 "quote 포함한 quote 친 거."
하루에 백 번 쓸 text object
단어와 WORD: iw / aw (punctuation 경계), iW / aW (whitespace 만 경계).
Quote: i", a", i', a', i`, a`.
괄호: i( = i) = ib (괄호 안), i{ = i} = iB (중괄호 안), i[ = i], i< = i>. 전부 괄호 자체를 포함하는 a 변형 있음.
HTML / XML 태그: it (태그 안 — <p> 와 </p> 사이 내용), at (태그 주변 — 태그 포함).
문장과 단락: is / as, ip / ap.
커서 위치는 상관없어.
ci" 가 커서가 string 의 첫 캐릭터에 있든, 마지막에 있든, 사이 어디에 있든 똑같이 작동해. Vim 이 바깥쪽으로 스캔해서 enclosing delimiter 를 찾아. 이게 text object 가 visual selection 보다 빠른 이유야 — 위치 잡고-선택 이 아니라, 그냥 영역에 이름을 붙여.머슬 메모리에 박을 power combo
ci"— 더블 quote 안 change ("string rename").ci(— 괄호 안 change ("함수 args 다시 쓰기").ci{— 중괄호 안 change ("이 블록 다시 쓰기").cit— HTML 태그 안 change.diw— 이 단어 통째로 삭제.daw— 단어 + 후행 whitespace 삭제 (라인 깔끔).dap— paragraph 통째로 삭제.vi{— 중괄호 안 visual select (블록 indent 좋음:vi{>).