Skip to content

Latest commit

 

History

History
89 lines (76 loc) · 4.91 KB

mark.md

File metadata and controls

89 lines (76 loc) · 4.91 KB

MARKS

  • 참고 : <C-키>CTRL과 해당 키를 함께 누르는 것을 의미합니다.

MARK 란?

  • 커서 위치를 기억하는 일종의 북마크 기능.
  • mark는 .viminfo 에 기록되기 때문에 vim을 종료한 후에 다시 실행해도 마크를 사용할 수 있습니다.

mark 목록

마크 설명
' 가장 최근에 점프한 라인.
` 가장 최근에 점프한 위치.
a - z 로컬 마크. 파일마다 a 부터 z 까지의 로컬 마크를 가질 수 있다.
A - Z 글로벌 마크. test 라는 파일에 A 마크를 지정하면 A 마크를 호출하여 어디에서도 test 파일로 점프할 수 있다.
" 현재 편집중인 파일에서 다른 파일로 점프하거나 했을 경우, 커서가 마지막으로 위치한 곳.
0 - 9 종료한 파일 히스토리. 마지막으로 편집한 여러 파일이 기록에 남게 된다.
^ 가장 최근에 INSERT 모드였던 위치.
. 마지막으로 편집한 위치.
< 가장 최근에 VISUAL 모드로 선택한 첫 글자의 위치.
> 가장 최근에 VISUAL 모드로 선택한 마지막 글자의 위치.
( 현재 문장의 시작지점.
) 현재 문장의 종료지점.
{ 현재 문단의 시작지점.
} 현재 문단의 종료지점.
  • 참고 : ( ) { } 마크의 경우, VIM 의 기본 이동 명령인 ( ) { } 로도 해당 마크로 점프할 수 있습니다.
  • VISUAL 모드로 범위 선택을 한 다음, : 로 커맨드 라인을 열어보면, :'<,'> 가 미리 입력되어 있는 것을 볼 수 있습니다. 선택된 범위에 대한 명령을 입력하라는 의미입니다. 이를 통해, 커맨드 라인에서 'a,'b 와 같은 방식으로 두 개의 마크를 사용해서 범위 지정을 할 수 있음을 알 수 있습니다.

mark 목록 확인하는 방법

  • :marks : 모든 마크의 정보를 봅니다.
  • :marks 마크아이디 : 지정한 마크 아이디의 정보를 봅니다.

mark 지정 방법

m 마크아이디

mark로 이동하는 방법

  • ` 마크아이디 : 커서를 a 마크로 이동.
  • ' 마크아이디 : 커서를 a 마크가 있는 라인으로 이동(해당 라인의 가장 왼쪽으로 이동합니다).
  • ]` : 다음 마크로 이동.
  • ]' : 다음 마크가 있는 라인으로 이동.
  • [` : 이전 마크로 이동.
  • [' : 이전 마크가 있는 라인으로 이동.

mark를 삭제하는 방법

:delm 마크아이디
:delmarks 마크아이디
:delm!
:delmarks!

mark 사용 예제 (기본)

설명
ma 현재 커서 위치를 마크 a 에 기억시킨다.
mA 현재 커서 위치와 파일을 마크 A 에 기억시킨다.
`a 현재 커서 위치를 a 마크로 이동.
'a 현재 커서 위치를 a 마크가 있는 라인으로 이동.
`A A 마크를 지정한 파일을 열고 마크 위치로 이동.
'A A 마크를 지정한 파일을 열고 마크가 있는 라인으로 이동.
`. 마지막으로 편집한 파일의 마지막으로 편집한 위치로 돌아간다.
:marks 모든 마크의 리스트를 확인한다.
:marks abc 마크 a,b,c 의 리스트를 확인한다.
:delm a a 마크를 삭제한다.
:delm a-d a,b,c,d 마크를 삭제한다.
:delm abdh a,b,d,h 마크를 삭제한다.
:delm! a 부터 z 까지 소문자 마크를 모두 삭제한다.

mark 사용 예제 (응용)

설명
v`a 현재 커서부터 a 마크까지 선택한다.
y'a 현재 커서부터 a 마크가 있는 라인의 첫 글자까지 복사한다.
d`a 현재 커서부터 a 마크까지 삭제한다.
`<v`> 마지막으로 선택한 영역을 다시 선택한다.
이 기능은 NORMAL 모드에서 gv로도 가능하다.
`1:cd 히스토리의 1번 파일 마크로 이동한 다음, 작업 경로(:pwd로 확인 가능)도 변경한다.
'b'' b 마크로 점프한 다음, 점프 직전의 위치로 돌아간다.
:'a,'b d a 마크가 있는 라인부터 b 마크가 있는 라인까지 삭제한다.
:'a,'b y a 마크가 있는 라인부터 b 마크가 있는 라인까지 복사한다.
:'a,'b s/test/pass/g a 마크부터 b 마크 사이의 모든 test 문자열을 pass로 replace 한다.
zf'a 현재 커서가 있는 위치부터 a 마크가 있는 라인까지 보이지 않도록 fold 한다.

참고 자료