14 리눅스 vi 자주쓰는 유용한 단축키, 명령어 정리
10 Aug 2019 | linux VirtualBox centos
[TOC]
리눅스에서 파일을 수정할 때,
vi {파일} 명령어 입력 후 사용할 수 있는 단축키 정리
0) 실제로 내가 제일 많이 쓰던 명령어
손에 익지 않아서 간단한 것들만 자주 쓰게 된다,,,
| 단축키 | 수행작업 | 
|---|---|
| shift + g (=window end 키) | 커서 맨뒤로 | 
| gg (=window home키) | 커서 맨앞으로 | 
| yy | 복사(해당줄에 커서 후 yy) | 
| p, P | 붙여넣기(해당줄에 커서 후 p or P) | 
| dd | 줄 지우기(한 줄 삭제) | 
| dw | 단어 지우기 | 
| u | 방금 수행 되돌리기 | 
| shift + u | 해당 줄만 수행 되돌리기 | 
| shift + j | 현재줄과 다음줄 연결 | 
1) 유용한 단축키
- 삽입 기능 단축키 ( 명령모드 )
| 단축키 | 수행작업 | 
|---|---|
| i | 커서 앞에 삽입 | 
| a | 커서 뒤에 삽입 | 
| o | 현재 줄 다음에 삽입 | 
| I | 현재 줄 첫 칸 앞에 텍스트 입력 | 
| A | 현재 줄 끝에 텍스트 입력 | 
| O | 현재 줄 앞에 삽입 | 
- 삭제 기능 단축키 ( 명령모드 )
| 단축키 | 삭제 대상 | 수행작업 | 
|---|---|---|
| x, #x | 문자 | 커서 위치의 문자 삭제 | 
| dw, #dw | 단어 | 커서 위치의 단어 삭제 | 
| dd, #dd | 줄 | 커서 위치의 줄 삭제 | 
| D(shift+d) | 줄의 일부 | 커서 위치부터 줄 끝까지 삭제 | 
| u | 방금 수행 명령 취소 | |
| U | 해당 줄의 모든 편집 취소 | 
- 복사 / 잘라내기 / 붙이기 기능 단축키 ( 명령모드 )
| 단축키 | 수행작업 | 
|---|---|
| yy, #yy | 현재 행을 버퍼로 복사 (ex: 5yy - 현재 행부터 아래로 5줄을 버퍼에 저장) | 
| p | 현재 행 다음에 버퍼 내용 삽입 | 
| P | 현재 행 위쪽에 버퍼 내용 삽입 | 
| dd, #dd | 현재 행을 잘라내기 | 
버퍼
- vi는 작업 내용을 버퍼에 저장 - 실행 취소 가능
 - 복사하기, 잘라내기에 사용
 사용 예
a3yy: 현재 행부터 아래로 3줄을 a 버퍼에 저장ap: a 버퍼의 내용을 붙여넣기
- 검색 기능 단축키 ( 명령모드 )
| 단축키 | 수행작업 | 
|---|---|
| /문자 | 현재 위치부터 파일 앞쪽으로 문자열 탐색 | 
| ?문자 | 현재 위치부터 파일 뒤쪽으로 문자열 탐색 | 
| n | 다음 문자열 탐색 | 
| N | 역방향으로 문자열 탐색 | 
- 삽입 기능 단축키
- 기타
vi에서 쉘 명령어 실행
| 명령어 | 수행작업 | 
|---|---|
| :!명령 | vi를 중단하고 지정한 명령 수행 | 
| 다시 vi로 돌아올 때 : enter | |
| :sh | vi를 잠시 빠져나가서 쉘을 수행 | 
| 다시 vi로 돌아올 때 : exit | 
알아두면 유용한 명령 키
| 명령어 | 수행작업 | 
|---|---|
| :f 파일명 | 파일 이름을 지정한 이름으로 변경 | 
| :w %.old | 현재 파일을 .old 이름으로 저쟁해 둘 때 | 
| ^g | 기본적인 파일 정보 출력(파일명, 라인 수 등..) | 
| J | 현재 줄과 다음 줄 연결 | 
| . | 바로 이전에 수행한 명령 재 실행 | 
| ~ | 현재 커서위치의 한 문자를 소문자 혹은 대문자로 전환 | 
- vi 종료 단축키
저장 : 저장하거나 종료하려면 “명령모드”로 돌아와야 한다.
ex) 편집 후 ESC 키를 눌러 편집모드가 아닌 명령모드 상태로 아래의 명령어를 쳐야한다.
| 명령어 | 수행작업 | 
|---|---|
| :w | 현재의 파일명, 상태로 파일 저장 | 
| :w 파일명 | 지정한 파일명, 상태로 파일 저장 | 
종료 명령 : 저장 후 종료 또는 그냥 종료
| 명령키 | 수행작업 | 
|---|---|
| :q | 작업 내용을 저장했으면 vi종료, 안했으면 종료 불가 | 
| :q! | 작업 내용을 저장하지 않고 강제로 vi 종료 | 
| :wq | 작업 내용을 저장한 후 vi 종료 | 
| :wq 파일명 | 작업 내용을 지정한 파일명으로 저장한 후 vi 종료 | 
| xx(shift+zz) | 작업 내용을 저장한 후 vi 종료 | 
2) 편집모드에서 커서 움직이기
- 
    
편집 모드에서 마우스로 커서를 움직일 수 없다.
 - 
    
만약 마우스로 움직이고 싶다면, ESC키를 눌러 명령모드로 바꾼 뒤 커서를 움직여야 한다.
 - 
    
화살표 혹은 h, j, k, l 키로 움직일 수 있다.
 
지정한 곳으로 이동하기
| 단축키 | 수행작업 | 
|---|---|
| :n 또는 nG | 줄 번호 n 위치로 | 
| :$ 또는 G | 파일의 끝 줄로 이동 | 
| n+ | n줄 만큼 앞으로 이동 | 
| n- | n줄 만큼 뒤로 이동 | 
| ( | 현재 문장의 처음으로 | 
| ) | 다음 문장의 처음으로 | 
| { | 현재 문단의 처음으로 | 
| } | 다음 문단의 처음으로 | 
        
              콩정의 개발 정리 블로그