(vim) jump 관련 명령 정리

jump와 관련된 명령들을 한 번은 정리하고 가자.

마크

m을 이용해서 현재 위치를 특정한 마크로 지정할 수 있고, 백팃 ` 이나 '작은 따옴표를 이용해서 그 위치로 되돌아 갈 수 있다.

마크는 a-z, A-Z, 0-9 와 몇 가지 특수문자가 적용되는데, 특수문자들은 특별한 의미를 가지는 것들이다.

  • a-z 영어 소문자는 일반적인 마크. 파일마다 따로 관리된다.

  • A-Z는 여러 파일간에 유지된다.

  • 0-9는 역시 여러 파일간에 유지되는데 … .viminfo 파일 내에 저장된다고 한다. 따라서 vim을 종료/재시작한 후에도 위치를 기억할 수 있다. (실제로 이는 vim을 빠져나갔을 때 위치를 기억한다고 한다.)

  • < > 는 이전 선택 영역의 처음과 끝을 가리킨다.

  • " 는 최종적으로 수정한 위치를 가리킨다.
  • ' 는 점프하기 이전 위치로 돌아간다.
  • ^는 삽입모드가 최종적으로 종료된 위치로 돌아간다.
  • .은 최종 변경이 시작된 위치이다.
  • [ ] 는 최종적으로 수정한 영역의 처음과 끝을 가리킨다.

marks를 사용하면 현재 이동할 수 있는 마크들을 보여준다.

점프

점프는 마커 이동을 비롯하여 ', ", G, /, ?, n, N, %, (, ), [, ], {, } :s, :tag, L, M, H 등의 명령으로 불연속적으로 커서가 이동한 것을 말한다. 점프가 발생하면 항상 이전 위치가 기록된다. 이는 점프 리스트 사이를 오가는 명령으로 이동할 수 있고, 점프 발생시에는 ', " 마커도 업데이트되므로 돌아가는 방법은 다 있는셈이다.

H, M, L 은 현재 윈도의 위/중간/아래로 가는 점프명령이다.

<C-O>는 점프리스트의 이전위치로, <C-I>는 점프리스트의 이후 위치로 이동한다.

변경 위치

  • g;, g,는 최근 변경 위치를 전/후로 옮겨다닌다.
  • :changes는 최근 변경 위치들을 보여준다.

그외 모션

  • %: 괄호 내에서 괄호의 시작과 끝으로 반복 이동한다.
  • [( [{ ]) ]} : 짝이 맞지 않는 괄호를 찾아 이동한다.;