C.W.K.
Stream
Lesson 02 of 06 · published

Text Object — 구조에 작용

~14 min · vim, text-objects, structure

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

캐릭터와 단어 에서 구조

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{>).

Code

전체 text-object 표·vim
" 단어
iw  aw       " inner / around 단어 (punctuation = 경계)
iW  aW       " inner / around WORD (whitespace = 경계)

" Quote
i"  a"   " 더블 quote 안 / 주변
i'  a'       " 싱글 quote 안 / 주변
i`  a`       " 백틱 안 / 주변

" 괄호 (각자 닫는 괄호 동의어)
i(  i)  ib   " 괄호 안
a(  a)  ab   " 괄호 주변 (포함)
i{  i}  iB   " 중괄호 안
a{  a}  aB   " 중괄호 주변
i[  i]       " 대괄호 안
i<  i>       " 꺾쇠 안

" HTML / XML 태그
it  at       " 태그 안 / 주변

" 문장과 단락
is  as       " inner / a 문장
ip  ap       " inner / a 단락
Power combo — 이게 세상을 굴려·vim
ci"     " 더블 quote 안 change
ci(     " 괄호 안 change
ci{     " 중괄호 안 change
cit     " HTML 태그 안 change
diw     " inner 단어 삭제 (커서는 단어 있던 자리에)
daw     " a 단어 + 주변 스페이스 (라인 깔끔)
dap     " a 단락 + 뒤 빈 라인
yi{     " 중괄호 안 yank
vap     " 단락 visual select
vi(     " 괄호 안 visual select (>, =, gq 좋음)

External links

Exercise

함수 정의가 적어도 하나 있는 파일 열어. 화살표 키 안 쓰고: (1) 화면 어디든 더블 quote 안 string 을 ci" 로 change; (2) 함수 호출 파라미터를 ci( 로 대체; (3) dap 로 단락 통째로 삭제; (4) 함수 본문을 =i{ 로 reformat. 각자 단일 합성 동사여야 해.

Progress

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

댓글 0

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

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