Web

[ vi Command ] vi 명령어 정리 모음

핏짜보이 2022. 10. 25. 21:44
반응형

1. vi 편집기의 전체적인 구조

 

1) 명령 모드 ( command mode) - 처음 vi 명령어로 시작하게 되면 들어갑니다.

여기서는 방향키로 커서 이동이 가능하며, 'dd', 'yy'로 한줄 삭제 / 한줄 붙여넣기 또는 'x' 명령어로 글자하나를 삭제할 수 있습니다.

 

2) 입력 모드 (insert mode) - 명령모드에서 'i'나 'a' 명령을 통해서 입력모드로 넘어갈 수 있습니다.

입력모드로 들어가면, 자유롭게 코드나 글을 작성할 수 있습니다. 다시 명령모드로 돌아오려면 'ESC'를 누르면 됩니다.

 

3) 마지막 행 모드 (last line mode) - 마지막 행모드는 명령모드에서 ':'(콜론)을 입력하면 화면 맨 아래에 

:_______ 하며 입력을 할 수 있는 공간이 나옵니다.

여기서 현재까지 내가 작성한 이 내용을 저장하고 vi를 종료(wq)할지, 저장하지 않고 종료(q, q!)할지 등을 입력할 수 있습니다.

 

 

2. vi 명령어 

 

2-1. 명령모드에서의 명령어

vi 명령어 동작
i 현재 커서 위치에 삽입 - 입력모드로 넘어감
a 현재 커서 바로 다음 위치에 삽입 - 입력모드로 넘어감
o 현재 줄 다음 위치에 삽입 //영문 o(오) - 입력모드로 넘어감
x 커서가 위치한 곳의 글자 1개 삭제 
Ex) 3x - 문자 3개 삭제
dw 커서가 위치한 곳에서부터 단어 삭제
커서가 위치한 곳부터 띄어쓰기까지
dd 커서가 위치한 곳의 한 줄 삭제
삭제이지만, p로 복구가능
u 방금 한 명령 취소
= ctrl + z (실행취소 기능)
yy 현재 줄을 버퍼로 복사
한줄을 ctrl + c 기능!
ex) 2줄 복사 - 2yy
p 현재 커서가 있는 줄 바로 아래에 버퍼 내용 붙여넣기
복사한 줄을 ctrl + v 기능!
ex)2dd로 2줄을 지운 내용도 p 로 붙여넣기 가능!
(잘라내기 : dd // 붙여넣기 : p)
(N)dd  삭제되는 것 처럼 보이지만 실제로는 잘라내기의 기능!
= ctrl + x
vi에서 3줄을 삭제하고 싶다면 3dd의 방식으로 사용가능!
0 커서가 있는 줄의 맨 앞으로 이동 // 숫자 0(영)!!!
$ 커서가 있는 줄의 맨 뒤로 이동
( 현재 문장의 처음
) 현재 문장의 끝
{ 현재 문단의 처음
} 현재 문단의 끝
G 파일의 끝으로 이동
대문자로 사용해야 함!!!
r 한 문자 변경
cc 커서가 있는 해당 줄의 내용 변경
숫자+ 숫자만큼 아랫 줄로 이동
숫자- 숫자만큼 윗 줄로 이동

 

2-2. 마지막 행 모드에서의 명령어

vi 명령어 동작
w 현재 파일명으로 파일 저장
(저장까지 하고 꺼지지는 않음!)
w [file name] 입력한 파일명으로 파일 저장
(저장까지 하고 꺼지지는 않음!)
q vi 종료(저장되지 않음)
q! vi 강제 종료 (저장되지 않음 / ! 사용하면 강제 수행) 
wq 저장 후 종료
wq! 강제 저장후 종료(! 사용하면 강제 수행)
f [file name] 파일 이름을 [파일명]으로 변경
ex)  f example.txt => example.txt
숫자 해당 라인으로 커서 이동
$ 파일의 맨 끝 줄로 이동
e! 마지막 저장 이후 모든 편집 취소
/문자열 현재 커서 위치에서부터 파일 암쪽으로 문자열 탐색
?문자열 현재 커서 위치에서부터 파일 뒤쪽으로 문자열 탐색
set nu vi 라인 번호 출력
set nonu vi 라인 번호 출력 취소
728x90