반복이 빠른 편집이 좋은 편집은 아니다
반복이 빠른 편집이 능숙한 편집이라는 통념이 통하지 않는 지점이 하나 있다. 변경 하나가 여러 곳에서 서로 다른 이유로 필요할 때다. 같은 단어가 세 줄에 나오더라도 한 곳은 오타이고, 다른 곳은 의도된 이름일 수 있다. 이 상황에서 마지막 변경을 그대로 재실행하는 방식은 빠를 수 없는 게 아니라, 반복 자체가 잘못된다. 속도 문제 앞에 대상 문제가 있다.
여기서 반복 가능성을 도구의 문제로만 보면 안 되고, 설계의 문제로 봐야 한다. 반복이 맞는 조건은 단순하다. 첫 변경이 정확히 어디까지 적용되는지가 텍스트 단위로 정해져 있고, 같은 단위가 실제로 반복될 때다. 범위를 정하는 이동과 그 범위에 적용할 행동을 조합하면 첫 변경은 더 이상 임시방편이 아니라 다시 쓸 수 있는 작업 단위가 된다. 이렇게 만든 변경은 반복하는 것이 안전하고, 되돌리는 경로도 명확하다.
문제는 작업 단위의 크기다. 변경이 커질수록 재실행이 매력적으로 보이지만, 반대로 틀렸을 때 되돌리는 비용도 커진다. 그래서 큰 변환은 한 번에 반복 가능한 것보다 작은 단위로 쪼개 확인하는 쪽이 낫다. 첫 단계에서 대상이 맞는지, undo가 직전 변경만 되돌리는지 확인할 수 있어야 한다. 이 조건이 무너지면 편집기가 제공하는 반복 기능은 그대로 남아 있어도 쓸 이유가 사라진다.
내가 이 책 계열의 정리를 보며 다시 본 지점은 여기다. 반복 가능한 편집은 키를 덜 누르기 위한 기술이 아니라, 내가 실수할 것을 전제로 한 변경의 경계 설정이다. 범위가 명확한 변환과 항목별 판단이 필요한 변환을 같은 방식으로 밀지 않는 한, 반복은 도구가 아니라 저주가 된다. 결국 남는 기준은 하나다. 지금 이 변경을 반복할지 말지는 텍스트를 보고 정하는 것이지 손가락이 정하는 게 아니라는 것.