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

Dot 명령 — Vim 의 숨은 슈퍼파워

~11 min · vim, productivity, dot-formula

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

모든 걸 반복하는 단일 키

이 퀘스트 전체에서 "고급" 명령 하나만 배운다면 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 하게 구조화해. cwdwi 보다 우선 (한 변경 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 키 @@ 가 있어.

Code

패턴 1 — 여러 라인에 세미콜론 추가·vim
" 목표: 블록의 모든 라인 끝에 ; 를 append.
" Step 1: 첫 라인으로 이동.
" Step 2: A; <Esc>     — ; 를 append, Insert mode 이탈
" Step 3: j.            — 한 라인 아래, 변경 반복
" Step 4: j. j. j.     — 계속 걸어
" 끝. 첫 라인 후 라인당 두 키.
패턴 2 — 검색 + dot 으로 여러 콜에서 파라미터 제거·vim
" 목표: Python 파일에서 모든 `, debug=True` 제거.
" Step 1: /, debug=True<Enter>     — 검색하고 첫 매치에 도착
" Step 2: dt)                       — ) 직전까지 (포함 안 함) 삭제
"          (이제 첫 번째 사라짐)
" Step 3: n.                        — 다음 찾기, 삭제 반복
" Step 4: n.  n.  n.               — "Pattern not found" 까지
Dot 이 뭘 기억하는지 — 직접 검증·vim
:help single-repeat
" Vim 자체의 정통 reference for 의 . 가 반복하는 것.

External links

Exercise

print( 문자열이 10 라인 이상 있는 (또는 반복되는 패턴 아무거나) 소스 파일 열어. Dot 공식으로 모든 print(logger.info( 로 rename: /print( 검색, cw 로 change, logger.info( 입력, Esc, 그 다음 n. 으로 "Pattern not found" 까지 파일 따라 걸어. 그게 — 그게 리듬이야.

Progress

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

댓글 0

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

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