VI 편집기 구조

1. 명령 모드 (Command mode)

vi 명령어로 편집기를 시작할 시, 단축키를 사용하여 커서의 이동, 수정, 삭제, 복사 & 붙이기 등 다양한 명령을 수행할 수 있다.

입력모드에 진입한 후, 다시 명령모드로 돌아오려면 [ESC]키를 누르면 명령모드로 다시 되돌아올 수 있다.

2. 입력 모드 (Insert mode)

명령모드 상태에서 i, a, o, I, A, O 의 단축키를 입력하여 입력모드로 전환할 수 있다. 입력모드에서는  직접 글이나 코드를 작성할 수 있는 상태이다.

3. 마지막 행 모드 (Last line mode)

마지막 행 모드는 명령모드 상태일 때, ':' (콜론)을 입력하면 화면 맽 밑에서 명령을 수행하는 모드이다.저장, 종료, 치환, 탐색 등의 기능을 수행할 수 있

VI 명령어 모음

1. 입력 모드 명령어

명령어 기능
i - 현재 커서의 위치부터 입력
I - 현재 커서 줄의 맨 앞에서부터 입력
a - 현재 커서의 다음 줄에 입력
A - 현재 커서 줄의 맨 뒤에서부터 입력
o - 현재 커서의 다음 줄에 입력
O - 현재 커서의 이전 줄에 입력
s - 현재 커서 위치의 한 글자를 지우고 입력
S - 현재 커서의 한 줄을 지우고 입력

입력모드로 전환하는 명령어의 종류는 여러개가 있지만, 나는 보통 i 로만 쓴다. 이 정도로만 써도 충분한 것 같다.

2. 명령모드에서 (삭제, 복사, 붙여넣기) 명령어

명령어 기능
x - 현재 커서가 위치한 문자를 삭제 (Del과 같다)
dw - 현재 커서가 위치한 곳부터 단어 삭제
dd - 현재 커서가 위치한 곳의 한 줄을 삭제
숫자 + dd - 현재 커서가 위치한 곳부터 숫자만큼의 줄을 삭제 - 5dd
yy - 현재 커서가 위치한 곳의 한 줄을 복사
숫자 + yy - 현재 커서가 위치한 곳부터 숫자만큼의 줄을 복사 - 5yy
p (소문자 - 현재 커서가 위치한 곳의 다음 줄의 내용 붙여넣기
P (대문자 - 현재 커서가 위치한 곳의 이전 줄의 내용 붙여넣기
u - 직전에 내린 명령을 취소

3. 명령모드에서 커서 이동 명령어

명령어 기능
h - 커서를 왼쪽으로 한칸 이동 (방향키 ←)
j - 커서를 한줄 아래로 이동 (방향키 ↓)
k - 커서를 한줄 위로 이동 (방향키 ↑)
l - 커서를 오른쪽으로 한칸 이동 (방향키 →)
w - 다음 단어의 처음으로 이동
^ - 줄의 첫 문자로 이동
$ - 현재 커서가 위치한 줄의 맨 끝으로 이동 (Home)
0 - 현재 커서가 위치한 줄의 맨 앞으로 이동 (End)
G - 제일 끝 줄로 이동
gg - 제일 처음 줄로 이동
nG - n번째 줄로 이동 (n= 숫자)
H - 화면의 첫 줄로 이동
M - 화면의 중간으로 이동
L - 화면이 끝 줄로 이동
Ctrl + b - 이전 화면으로 이동 (Page Up)
Ctrl + f - 다음 화면으로 이동 (Page Down)