모든 걸 반복하는 단일 키
이 퀘스트 전체에서 "고급" 명령 하나만 배운다면 dot 명령으로 해: . 가 마지막 변경을 반복해. 단연 Vim 에서 가장 강력한 단일 키스트로크고, 숙련자가 빨라 보이는 엔진이야.
"변경" 의 의미
변경 = Normal mode 진입과 이탈 사이에 buffer 를 수정한 모든 것. 예시:
dd— 라인 삭제..다음 라인 삭제.cwhelloEsc— 단어를 "hello" 로 change..다음 단어를 "hello" 로 change.A;Esc— 세미콜론 append..지금 있는 라인에 세미콜론 append.I//Esc— 라인 주석화..다음에 가리키는 라인 주석화.
Dot 공식
Drew Neil 의 Practical Vim 이 본질을 추출했어: 한 키스트로크로 이동, 한 키스트로크로 변경 반복. 편집 루프가 n., j., ;. 가 돼 — 다음 찾고, 반복. 이 리듬을 손이 찾으면 batch 편집이 타이핑이 아니라 메트로놈 연주처럼 느껴져.
편집을 dot-repeatable 하게 구조화해.
cw 를 dwi 보다 우선 (한 변경 vs 두 변경). A; 를 $a; 보다 우선. 첫 편집은 같은 속도. 차이는 두 번째부터 열 번째 편집에서 나와 — . 누르고 이전 버전이 제대로 재생 안 될 때.영원히 쓸 두 패턴
패턴 1: 검색 + dot. / 또는 * 로 다음 occurrence 찾고, 변경하고, n., n., n. — 파일 전체 끝. 검색 명령은 n 으로 반복, 변경은 . 으로 반복. 두 손동작, 무한 도달.
패턴 2: 라인 점프 + dot. 변경 한 번 하고, j., j., j. 가 파일 따라 내려가며 적용. 또는 paragraph 점프로 }.. 또는 }.}.. 매 반복이 정확히 두 키.
Dot 이 반복 안 하는 것
- 순수 motion —
j,w,$는 변경이 아니니까 dot 이 무시해. :s/old/new/g같은 command-line operation. 그건&또는:&로 반복.- 매크로 — 자체 replay 키
@@가 있어.