IT 지식/Linux

vi,vim 필수 명령문

레벨업중 2024. 6. 5. 09:29

서버 터미널에 접근하여 작업을 하는 분들은 기본적으로 VI,VIM 기초 명령문을 다루어야 합니다.
기본적인 내용과 가끔 써서 기억하지 못하는 내용 위주로 기입 하였습니다. 
VIM은 4가지 모드로 구성되어있습니다. 

Normal Mode: 명령어 입력 모드 (기본 모드) - 기본 상태 
Insert Mode: 텍스트 입력 모드 (i, a 등의 키로 진입) - 글자 입력을 위해 사용
Visual Mode: 텍스트 선택 모드 (v, V, Ctrl-v 등의 키로 진입) - 보통 여러줄 복사해서 붙여넣기 할때 사용
Command Mode: 명령어 라인 모드 (: 키로 진입) - 파일을 열어 : 입력

1. Vim 편집기 열기
vim filename

2. 편집기 종료
:q               # 저장하지 않고 종료
:wq              # 저장하고 종료
:q!              # 변경사항 무시하고 강제 종료
:x               # 변경사항이 있을 경우 저장하고 종료

3. 파일 저장
:w
:w filename      # 다른 이름으로 저장

4. 편집 모드로 전환
i                # 현재 커서 위치에서 입력 시작
I                # 줄의 시작에서 입력 시작
a                # 현재 커서 다음 위치에서 입력 시작
A                # 줄의 끝에서 입력 시작
o                # 현재 줄 다음에 새로운 줄을 추가하고 입력 시작
O                # 현재 줄 위에 새로운 줄을 추가하고 입력 시작

5. 명령 모드로 전환
Esc

6. 라인 내 이동 ( 시계 역방향 )
h                # 왼쪽으로 한 문자 이동
j                # 아래로 한 줄 이동
k                # 위로 한 줄 이동
l                # 오른쪽으로 한 문자 이동

7. 단어 단위 이동
w                # 다음 단어의 시작으로 이동
e                # 현재 단어의 끝으로 이동   ( 현재 단어의 끝에서  누르면 다음 끝으로 이동 )
b                # 현재 단어의 시작으로 이동 ( 현재 단어의 시작에서 누르면 이전 단어의 시작으로 이동 )

8. 줄 단위 이동
0                # 현재 줄의 처음으로 이동
^                # 현재 줄의 처음 비문자열로 이동
$                # 현재 줄의 끝으로 이동 

9. 특정 줄로 이동
:n               # n번째 줄로 이동

10. 화면 내 이동
H                # 화면의 맨 위로 이동
M                # 화면의 중간으로 이동
L                # 화면의 맨 아래로 이동

11. 텍스트 삭제
x                # 현재 커서의 문자 삭제
X                # 현재 커서에서 이전 문자 삭제
dd               # 현재 줄 삭제
dw               # 현재 단어 삭제
D                # 현재 커서부터 줄 끝까지 삭제

12. 텍스트 복사 및 붙여넣기
yy               # 현재 줄 복사
yw               # 현재 단어 복사
p                # 복사한 내용을 현재 커서 다음에 붙여넣기
P                # 복사한 내용을 현재 커서 이전에 붙여넣기

13. 텍스트 변경
cw               # 현재 단어 변경
cc               # 현재 줄 변경
C                # 현재 커서부터 줄 끝까지 변경

14. 검색
/pattern         # 정방향 검색
?pattern         # 역방향 검색
n                # 다음 검색 결과로 이동
N                # 이전 검색 결과로 이동

15. 치환
:s/old/new       # 현재 줄에서 old를 new로 치환
:s/old/new/g     # 현재 줄에서 old를 new로 전체 치환
:s/old/new/gc    # 치환 여부를 묻고 현재 줄에서 old를 new로 치환
:%s/old/new/g    # 전체 파일에서 old를 new로 치환
:%s/old/new/gc   # 치환 여부를 묻고 전체 파일에서 old를 new로 치환

16. 새 파일 열기
:e filename

17. 파일 목록 보기
:ls

18. 실행 취소 및 다시 실행
u                # 실행 취소(undo)
Ctrl+r           # 다시 실행(redo)

19. 명령어 반복
.                # 마지막 명령어 반복

20. 외부 명령어 실행
:!command        # 예: :!ls

21. 도움말 열기
:help
:help command    # 특정 명령어에 대한 도움말 보기 
aisjdfijisj

22. visual mode 
 v : visubla mode 진입 
 여러줄을 h,j,k,l로 선택후 yy 복사 > p 붙여넣기