Among Us - Yellow Crewmate [Linux] vi 편집기 명령어 정리하기

Linux

[Linux] vi 편집기 명령어 정리하기

감쟈! 2021. 5. 19. 21:44

vi 명령어는 Linux, Unix에서 사용되는 편집기를 사용하는 명령어다. vi 편집기에 대해서 살펴보도록 하자

 

 

vi 편집기는 총 3가지의 명령모드, 입력모드, 마지막 행모드로 구성되어 있다. 먼저 이 vi 편집기의 구조를 살펴보자

 

 

1. Vi 편집기 구조

 

1. 명령 모드 (Command mode)

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

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

 

2. 입력 모드 (Insert mode)

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

 

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

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

 

 

 

2. Vi 명령어 모음

 

1. 입력 모드 명령어

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

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

 

 

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

명령어 기능
x  - 현재 커서가 위치한 문자를 삭제 (Del과 같다)
dw  - 현재 커서가 위치한 곳부터 단어 삭제
dd  - 현재 커서가 위치한 곳의 한 줄을 삭제 
숫자 + dd  - 현재 커서가 위치한 곳부터 숫자만큼의 줄을 삭제 (5dd : 5줄 삭제) 
yy  - 현재 커서가 위치한 곳의 한 줄을 복사
숫자 + yy  - 현재 커서가 위치한 곳부터 숫자만큼의 줄을 복사 (5yy : 5줄 복사)
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 라인 번호 출력 취소

 

 

 

vi 편집기에서 사용하는 명령어는 다양하게 있지만 사실 쓰다보면 사용하는 명령어는 그렇게 많지는 않은 것 같다.

굳이 전부다 외우려고 하지 말고, 본인이 자주 쓰는 명령어만 알고 있으면 될 것 같다.