RaGo

최근 VI VIM 에디터를 사용할 일이 많아져서 단축키를 정리해본다. 아무래도 이미 GUI기반의 IDE에 익숙해진 상황에서 마우스를 사용할수 없는 콘솔 기반의 편집기는 사용하기 불편했다. 하지만 그럼에도 VIM을 쓰는 이유는 모든 리눅스 시스템에 기본적으로 설치되어있고 마우스를 사용하지 않으므로 손의 이동이 적어 오랜 타이핑에도 피로도가 적다. 물론 이것도 단축키를 잘 사용 했을때 얘기다.



[커서 이동 관련]

K J H I        [상 하 좌 우]로 이동

-                다음줄의 처음으로

E                다음단어 끝으로

W                다음단어 처음으로

$         줄의 마지막으로

0         줄의 처음으로

^         줄의 처음으로(공백이나 탭이 아닌 문자)

Shift + G 문서의 마지막으로

gg         문서의 처음으로 이동

<n>g         문서의 <n>번째 줄로 이동

), (         다음, 이전 문장의 처음으로

}, {         다음, 이전문단의 처음으로

]], [[         다음, 이전 구절의 처음으로


[화면 스크롤 관련]

Ctrl + F 한 화면 을 앞으로 스크롤

Ctrl + B 한 화면 을 뒤로 스크롤

Ctrl + D 반 화면 을 앞으로 스크롤

Ctrl + U 반 화면 을 뒤로 스크롤

Ctrl + E 한줄 앞으로 스크롤

Ctrl + Y 한줄 뒤로 스크롤

Shift + H 화면의 맨 윗줄로

Shift + M 화면의 중간줄로

Shift + I 화면의 맨 아랫줄로


[마킹]

M<a> 현재 커서 위치를 <a>에 저장 <a> 는 a-z까지의 문자

'<a>         마킹된 라인의 가장 앞으로 이동

`<a>         마킹된 커서 위치로 이동


[입력모드]

i         현재위치에서 삽입

I         현재줄의 처음위치에서 삽입

a         현재위치에서 한칸앞으로 이동해서 삽입

A         현재줄의 마지막위치에서 삽입

o         새로운 줄을 커서 아래에 연다

O         새로운 줄을 커서 위에 연다

s         커서 위치의 문자를 지우고 입력모드로 들어간다.

S         커서 위치의 라인을 지우고 입력모드로 들어간다.


[편집관련]

yy         현재 라인 복사

y<n>         현재 라인부터 <n>라인만큼 복사

p         붙여넣기

r         현재 글자 교체하기

dd         현재 라인 잘라내기

dw         한단어 잘라내기

x         현재 글자 지우기

X         앞의 글자 지우기

Shift + D 현재 커서의 위치에서 마지막까지 삭제

Shift + J 현재 라인의 개행문자를 삭제한다

>         들여쓰기

<         내어쓰기

U         되돌리기(Undo)

Ctrl + R Redo


[비주얼 블록]

v         단어 블럭지정

Shift + v 라인 블럭지정

Ctrl + v 블럭단위 블럭지정

y         지정된 블럭을 복사한다.

p         복사된 블럭을 현재라인(커서) 아래에 붙인다.

d         지정된 블럭을 삭제한다.

dd         현재라인을 삭제한다.