형식 -> 명령 [옵션][인자]
- 명령 : 사용자가 컴퓨터 운영체제나 응용프로그램에게 어떤 서비스를 수행하도록 요구하는 것
- 옵션 : 옵션을 사용하여 명령의 세부 기능을 선택할 수 있다. 리눅스의 기능을 풍부하게 하는 중요한 특징. "-"기호로 시작하며 영문 소문자나 대문자로 구성. 명령에 따라 어떤 옵션이 있고 그 기능이 무엇인지는 해당 명령의 사용법을 참조
- 인자 : 명령으로 전달되는 값으로 주로 파일명이나 디렉터리명
- vi [파일명] : 파일 열기, 작성
- vi +[행번호][파일명] : 파일을 열고, 입력한 행으로 커서 이동
- vi +/"문자열" [파일명] : "문자열"의 처음발생 단어부터 열기
- vi -r [파일명] : 손상된 파일 회복
- view [파일명] : 읽기 전용으로 열기
편집기는 명령도드, 입력모드, 마지막 행 모드로 총 3가지 모드로 구성되어 있다. 흔히 사람들이 말하는 vi 명령어는 이 세가지 모드를 자유자재로 왔다갔다 하면서 코드나 글을 작성하는 것을 말한다.
| vi 명령어 | 동작 |
|---|---|
| h | 왼쪽으로 커서 이동 |
| j | 아래로 커서 이동 |
| k | 위로 커서 이동 |
| l | 오른쪽으로 커서 이동 |
| w | 오른쪽 한 단어의 끝부분으로 커서 이동 |
| e | 오른쪽 한 단어의 앞부분으로 커서 이동 |
| b | 왼쪽 한 단어의 앞부분으로 커서 이동 |
| Enter | 한 행 아랠로 커서 이동 |
| Backspace | 한 문자 왼쪽으로 커서 이동 |
| SpaceBar | 한 문자 오른쪽으로 커서 이동 |
| ^ | 행의 맨 왼쪽으로 커서 이동 |
| $ | 행ㅇ의 맹 오른족으로 커서 이동 |
| H | 화면의 맨 위로 이동 |
| M | 화면의 중간으로 이동 |
| L | 화면의 맨 아래로 이동 |
| 숫자G | 숫자만큰 지정한 줄로 커서 이동 |
| Ctrl + i | 한 화면 위로 이동 |
| Ctrl + b | 한 화면 아래로 이동 |
| Ctrl + d | 반 화면 위로 이동 |
| Ctrl + u | 반 화면 아래로 이동 |
| Ctrl + e | 한 줄씩 위로 이동 |
| Ctrl + y | 한 줄씩 아래로 이동 |
| vi 명령어 | 동작 |
|---|---|
| a | 커서 오른쪽에 문자 삽입 |
| A | 커서 오른쪽, 행의 끝에 문자 삽입 |
| i | 커서 왼쪽에 문자 삽입 |
| l | 커서 왼쪽, 행의 처음에 문자 삽입 |
| o | 커서 아래에 행 삽입 |
| O | 커서 위에 행 삽입 |
| Esc | 종료 |
| vi 명령어 | 동작 |
|---|---|
| cw | 단어 변경 |
| cc | 행 변경 |
| C | 커서 오른쪽의 행 변경 |
| s | 커서가 위치한 문자열 대체 |
| S | 커서가 위치한 라인의 문자열 대체 |
| r | 커서 위치 문자를 다른 문자로 대체 |
| r-Enter | 행 분리 |
| J | 현재 행과 아래 행 결합 |
| xp | 커서 위치 문자와 오른쪽 문자 교환 |
| ~ | 문자형(대,소문자) 변경 |
| u | 이전 명령 취소 |
| U | 행 변경 사항 취소, 이전의 최종 행 취소 |
| . | 이전 최종 명령 반복 |
| vi 명령어 | 동작 |
|---|---|
| x | 커서가 있는 문자 삭제 |
| nx | 커서가 있는 위치부터 n개의 문자를 삭제 |
| dw | 현재 커서에 있는 한 단어 삭제 |
| dd | 커서가 있는 라인 삭제 |
| ndd | 커서가 있는 라인부터 n개의 하인 삭제 |
| db | 커서의 위치에서 거꾸로 한 단어 삭제 |
| D | 커서 오른족 행 삭제 |
| :5,10d | 5~10번째 행 삭제 |
| vi 명령어 | 동작 |
|---|---|
| yy | 커서가 위치한 줄 복사 |
| Y | 행 yank 또는 복사 |
| yh | 커서의 왼쪽 문자 복사 |
| yl | 커서에 위치한 문자 복사 |
| yi | 커서가 위치한 줄고 그 아랫줄 복사 |
| yk | 커서가 위치한 줄과 그 윗줄 복사 |
| p | yank 된거나 삭제된 행 현재 행 위로 삽입 |
| P | yank 되거나 삭제된 행 현재 행 아래에 삽입 |
| :1,2 co 3 | 1~2행을 3행 다음으로 복사 |
| :4,5 m 6 | 4~5행을 6행 위로 이동 |
| vi 명령어 | 동작 |
|---|---|
| :set nu 또는 :set numbe | 에디터의 각 행의 좌측에 행 번호 표시 |
| :set nonu | 에디터의 각 행의 좌측 행 번호 숨기기 |
| vi 명령어 | 동작 |
|---|---|
| G | 파일의 마지막 행으로 가기 |
| 21G | 파일의 21번째 행으로 가기 |
| Ctrl + G | 현재 File name과 커서의 라인 정보 |
| vi 명령어 | 동작 |
|---|---|
| /문자열 | 오른쪽 아래 방향으로 문자열 검색 |
| ?문자열 | 왼쪽 위 방향으로 문자열 검색 |
| n | 문자열의 다음으로 계속 검색 |
| N | 문자열의 이전으로 계속 검색 |
| :g/search-string/s | 각 발생 탐색 후 확인하고 대체 |
| :s/string/rep | 현재 행의 str을 rep로 대체 |
| :1,.s/string/rep/ | 1부터 현재 행의 str을 rep로 대체 |
| :%s/string/rep/g | 파일 전테 str을 rep로 전부대체 |
| :.$/aaa/bbb | 커서의 위치로부터 파일의 끝가지 있는 모든 aaa를 bbb로 대체 |
| vi 명령어 | 동작 |
|---|---|
| Ctrl + l | 불필요한 화면 정리 후 다시 표시 |
| vi 명령어 | 동작 |
|---|---|
| :r 파일명 | 커서 다음에 파일 삽입 |
| :행번호 r 파일명 | 입력한 파일을 입력한 행번호 다음에 삽입 |
| vi 명령어 | 동작 |
|---|---|
| :w | 변경사항 저장 |
| :w 파일명 | 변경사항 입력한 파일명으로 저장 |
| :wq | 변경사항 보관후 vi 종료 |
| ZZ | 변경사항 보관 후 vi 종료. 임시 버퍼의 내용을 vi로 호출할 때 사용되었던 파일에 기록한 후 vi를 빠져나옴 |
| :q! | 변경사항 보관하지 않고 종료 |
| q | 수정한 파일을 저장하지 않고 vi 종료 |
| e! | 수정한 것을 무시하고 다시 편집상태로 |
이 글은 저에게 많은 도움이 되었습니다.