- 참고 :
<C-키>
는CTRL
과 해당 키를 함께 누르는 것을 의미합니다.
- 커서 위치를 기억하는 일종의 북마크 기능.
- mark는 .viminfo 에 기록되기 때문에 vim을 종료한 후에 다시 실행해도 마크를 사용할 수 있습니다.
마크 | 설명 |
---|---|
' |
가장 최근에 점프한 라인. |
` |
가장 최근에 점프한 위치. |
a - z |
로컬 마크. 파일마다 a 부터 z 까지의 로컬 마크를 가질 수 있다. |
A - Z |
글로벌 마크. test 라는 파일에 A 마크를 지정하면 A 마크를 호출하여 어디에서도 test 파일로 점프할 수 있다. |
" |
현재 편집중인 파일에서 다른 파일로 점프하거나 했을 경우, 커서가 마지막으로 위치한 곳. |
0 - 9 |
종료한 파일 히스토리. 마지막으로 편집한 여러 파일이 기록에 남게 된다. |
^ |
가장 최근에 INSERT 모드였던 위치. |
. |
마지막으로 편집한 위치. |
< |
가장 최근에 VISUAL 모드로 선택한 첫 글자의 위치. |
> |
가장 최근에 VISUAL 모드로 선택한 마지막 글자의 위치. |
( |
현재 문장의 시작지점. |
) |
현재 문장의 종료지점. |
{ |
현재 문단의 시작지점. |
} |
현재 문단의 종료지점. |
- 참고 :
( ) { }
마크의 경우, VIM 의 기본 이동 명령인( ) { }
로도 해당 마크로 점프할 수 있습니다. - VISUAL 모드로 범위 선택을 한 다음,
:
로 커맨드 라인을 열어보면,:'<,'>
가 미리 입력되어 있는 것을 볼 수 있습니다. 선택된 범위에 대한 명령을 입력하라는 의미입니다. 이를 통해, 커맨드 라인에서'a,'b
와 같은 방식으로 두 개의 마크를 사용해서 범위 지정을 할 수 있음을 알 수 있습니다.
:marks
: 모든 마크의 정보를 봅니다.:marks 마크아이디
: 지정한 마크 아이디의 정보를 봅니다.
m 마크아이디
` 마크아이디
: 커서를 a 마크로 이동.' 마크아이디
: 커서를 a 마크가 있는 라인으로 이동(해당 라인의 가장 왼쪽으로 이동합니다).]`
: 다음 마크로 이동.]'
: 다음 마크가 있는 라인으로 이동.[`
: 이전 마크로 이동.['
: 이전 마크가 있는 라인으로 이동.
:delm 마크아이디
:delmarks 마크아이디
:delm!
:delmarks!
키 | 설명 |
---|---|
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 까지 소문자 마크를 모두 삭제한다. |
키 | 설명 |
---|---|
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 한다. |