Mark — buffer 의 북마크
Mark 는 라벨 붙은 위치고 점프해서 돌아갈 수 있어. ma 가 커서에 mark a 박음. 'a 가 그 라인으로 점프, ` + a 가 정확한 컬럼으로 점프. 소문자 mark (a–z) 는 파일 단위. 대문자 mark (A–Z) 는 글로벌 — "어디서든 이 파일로 다시 점프" 에 유용.
Vim 이 알아서 박는 mark
` + .— 마지막 편집 위치. (엄청 유용 — "방금 타이핑하던 자리로 데려가".)` + ^— 마지막 Insert-mode 위치.` + [/` + ]— 마지막 변경/yank 의 시작/끝.` + </` + >— 마지막 visual 선택의 시작/끝.` + '— 마지막 점프 위치 (``가 토글).
매크로 — 녹음하고 재생
매크로는 register 에 저장된 키스트로크 시퀀스. q + register 글자로 녹음 시작, 편집하고, 다시 q 로 멈춤. @a 로 재생, @@ 로 마지막 매크로 재생. 10@a 가 10 번 재생.
항상 작동하는 매크로 레시피
- 커서를 라인 시작에 위치.
- 녹음 시작:
qa. - 한 라인의 모든 편집 하고,
j(또는 검색 후n) 로 끝내서 커서가 다음 타깃에 떨어지게. - 녹음 멈춤:
q. - 재생:
@a한 번 더,100@a아래 전부.
매크로는 dot 의 슈퍼 사이즈. Dot 명령은 한 변경 반복. 매크로는 변경 시퀀스 + 그 사이 navigation 까지 반복. Dot 공식이 부족할 때 — 다단계 transform 이 필요할 때 — 대신 매크로를 녹음.
Register — Vim 의 여러 클립보드
Vim 은 클립보드 한 개가 아니라 여러 개야. 각 register 는 단일 캐릭터로 이름 붙여. "ay 로 yank 하면 register a 에 저장; "ap 로 paste 해서 가져와. 특별 register 들:
""— unnamed register (d/y/c/p 의 기본)."0— yank register; 마지막 yank 만 (delete 는 안 건드려)."0p로 paste 하면 그 후로 삭제했어도 마지막 yank 가 돌아와."+— 시스템 클립보드 (Cmd+C / Ctrl+C 영토)."*— X11 selection 클립보드 (Linux 의 middle-click).".— 마지막 insert 텍스트.":— 마지막 command-line."/— 마지막 검색 패턴."_— 블랙홀 (쓰기는 어디로도 안 감 — yank 안 덮으면서 삭제하는 데 유용).