작업 공간 도구

북마크

다시 돌아오고 싶은 자리 — 버그가 사는 줄, 이름을 절반쯤 바꾸다 만 함수, 리팩터링이 끝나면 지울 것. 파일 뷰어에서 줄을 오른쪽 클릭하고 이 줄을 북마크를 고르면 사이드바에 나타나고, 클릭하면 그 자리로 돌아갑니다.

사이드바의 북마크

북마크된 줄은 여백에 표시가 붙고, 아무 줄에나 마우스를 올리면 클릭할 수 있는 흐린 표시가 나타납니다 — 컨텍스트 메뉴는 기능이 있다는 걸 이미 아는 사람을 위한 것입니다.

북마크는 이 컴퓨터와 이 저장소만의 것입니다. 저장소에는 아무것도 쓰지 않으므로 커밋할 수도, 푸시할 수도, 남이 볼 수도 없습니다 — 할 일과 똑같습니다.

줄은 움직입니다. 문제는 그게 전부입니다.

누가 위에 한 줄만 끼워 넣어도 cart.ts:42는 썩고, 조용히 엉뚱한 줄을 여는 북마크는 없느니만 못합니다. 그래서 줄 번호 옆에 그 줄의 텍스트를 저장하고, 열 때 다시 찾습니다:

  1. 기억해 둔 줄이 아직 그 텍스트라면 그 줄;
  2. 아니면 같은 텍스트를 가진 가장 가까운 줄 — 가장 가까운 것이 핵심입니다. 파일 곳곳에 반복되는 줄이라도 원래 자리에 제일 가까운 사본으로 풀립니다;
  3. 그것도 없으면 공백을 무시하고 일치하는 가장 가까운 줄. 들여쓰기 변경이나 포매터를 견딥니다;
  4. 다 없으면 그 줄은 사라졌다고 말하고, 추측하는 대신 있던 자리를 엽니다.

줄이 옮겨지면 북마크는 스스로 낫습니다. 새 줄 번호가 저장되어 다음에 열 때는 실제 위치에서 시작합니다. 메모는 컨텍스트 메뉴에서 붙일 수 있고, 메모가 없으면 줄의 텍스트가 곧 이름표입니다.

한계

  • 북마크가 가리키는 것은 작업 트리이지 커밋이 아닙니다. 편집을 따라가지만 역사를 거슬러 올라가지는 않습니다.
  • 다시 쓰인 파일은 북마크를 잃습니다. 수백 줄 안에 정확한 텍스트도, 공백을 정규화한 형태도 없다면 정직하게 가리킬 것이 남지 않습니다.
  • 파일 이름을 바꾸면 북마크가 깨집니다. 열쇠는 경로입니다. git은 diff에서 rename을 알아보지만, 북마크는 diff의 일부가 아닙니다.
  • 빈 줄에는 맞출 텍스트가 없습니다. 그 북마크는 번호에만 매달립니다.

함께 보기: 할 일 · 문제

GitHub에서 이 번역 개선하기