반응형
Linux의 vi는 대표적인 CLI(Command-Line Interface) 기반의 텍스트 편집기로, 유닉스 환경에서 개발된 ed 편집기를 바탕으로 만들어졌다. 매우 빠르고 다양한 편리한 기능을 제공하여 많은 사용자들에게 널리 사용되고 있다. vi 편집기의 기능과 사용방법 명령어등을 정리 하였다.
[목차]
1. 기본 사용법
vi [파일이름]
vi [새로 만들 파일이름]
입력 모드와 명령 모드로 사용된다.
입력 모드는 키보드로 타이핑하여 문자를 입력하는 모드이고
명령 모드는 문서를 명령어로 조작 및 편집하는 모드이다.
2. 입력 모드(Insert Mode)
- vi 편집기를 실행하면 명령모드로 시작된다. 이때는 텍스트를 편집할 수 없다.
- 입력 모드로 전환을 하려면 i, a, o 키 중 하나를 입력하면 된다.
| 입력키 | 설명 |
| i | 현재 위치에서 Insert 모드로 전환 |
| a | 현재 위치에서 다음 글자부터 Insert 모드로 전환 |
| o | 현재 줄 다음에 새로운 줄을 추가하고, Insert 모드로 전환 |
3. 명령 모드(Command Mode)
- vi 편집기를 실행하면 명령모드로 시작된다.
- 입력 모드 상태에서 명령모드로 진입하려면 esc 키를 누르면 된다.
1) 주요 명령어
| 명령어 | 설명 |
| dd | 현재 줄을 삭제 |
| yy | 현재 줄을 복사 |
| p | 복사한 줄을 현재 위치에 붙여넣기 |
| u | 이전 명령 취소 |
| Ctrl-r | 이전 명령 재실행 |
| :w | 현재 파일 저장 |
| :q | 편집기 종료 |
| :wq | 현재 파일 저장하고 편집기 종료 |
| :set nu | 라인 번호 출력 |
| :set nonu | 라인 번호 출력제거 |
| /검색어 | 검색어를 찾음, 다음 검색으로 이동 하려면 n 입력 |
| ?검색어 | 검색어를 현재 위치에서 역방방으로 찾음, 이전 검색으로 이동 하려면 n 입력 |
| :set ignorecase | 검색어를 대소문자를 구분하지 않고 찾음 |
| ]] | 문서 섹션의 마지막 줄로 이동 |
| [[ | 문서 섹션의 첫번째 줄로 이동 |
| h (←) | 왼쪽이동 |
| j (↓) | 아래이동 |
| j (↑) | 위로이동 |
| l (→) | 오른쪽이동 |
| 0 | 현재 줄 맨 앞으로 이동 |
| $ | 현재 줄 맨 뒤로 이동 |
| gg | 파일 첫 번째 줄로 이동 |
| G | 파일 마지막 줄로 이동 |
| v | Visual 모드로 전환 |
| V | 현재 줄을 모두 선택 |
| Ctrl-v | 블록 모드로 전환 |
| yy | 선택한 줄을 복사 |
| dd | 선택한 줄을 삭제 |
| p | 복사한 줄을 현재 위치에 붙여넣기 |
| :set paste | 복사한 텍스트를 붙여넣을 때 자동 들여쓰기 방지 |
| :set nopaste | 자동 들여쓰기 기능 다시 켜기 |
2) 치환(substitute) 명령어
단어의 치환
:%s/oldword/newword/g
- % : 파일 전체
- s : 치환 명령어
- /oldword/newword/ : oldword를 newword로 변경
- g : 각 줄에서 모든 문자열을 변경
선택한 블록 치환
:'<,'>s/oldword/newword/g
- '<, '> : 선택한 블록을 나타내는 표시
- s : 치환 명령어
- /oldword/newword/ : oldword를 newword로 변경
- g : 각 줄에서 모든 문자열을 변경
특정 줄에서 치환
:5s/oldword/newword/g
- 5 : 5번째 줄
- s : 치환 명령어
- /oldword/newword/ : oldword를 newword로 변경
- g : 각 줄에서 모든 문자열을 변경