Search

VI

vi 편집기는 총 3가지의 명령모드, 입력모드, 마지막 행모드로 구성되어 있다.

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)

4. 마지막 행 모드 (Last line mode) 명령어

명령어
기능
:w
- 현재 파일명으로 파일 저장
:q
- vi 편집기 종료 (저장되지 않음)
:q!
- vi 편집기 강제 종료
:wq
- 수정 내용 저장 후 종료
:wq!
- 강제 저장 후 종료
:숫자
 - 해당 숫자 라인으로 커서 이동
:e!
- 마지막 저장 이후 모든 편집 취소
/문자열
 - 현재 커서 위치에서부터 파일 앞쪽으로 문자열 탐색
?문자열
- 현재 커서 위치에서부터 파일 뒤쪽으로 문자열 탐색
:set nu
- vi 라인 번호 출력
:set nonu
- vi 라인 번호 출력 취소