vi의 세 가지 모드
- 명령 모드 (command mode) : vi 명령어를 통해 vi를 시작할 경우 실행되는 모드, 방향키를 통해 커서 이동
- 입력 모드 (insert mode) : 명령 모드에서 i 또는 a 키를 눌러 입력 모드로 넘어감, 코드나 글 작성 가능, 명령 모드로 돌아갈 때는 ESC
- i : 커서가 현재 위치한 부분에서부터 시작
- a : 커서 바로 다음 부분부터 시작
- shift + spacebar : 영/한 변환
- 콜론 모드 : 명령 모드에서 : (콜론)을 입력하면 화면 맨 아랫줄에 입력 가능한 공간이 출력
vi의 구성
vi 명령어
- 명령 모드에서 입력 모드로 전환
- i: 커서 앞(왼쪽)에 입력
- a: 커서 다음(오른쪽)에 입력
- 입력 모드에서 명령 모드로 전환
- ESC
- 저장, 종료하기 (콜론 모드)
- :q 종료
- :q! 저장하지 않고 강제로 종료
- :w 저장
- :wq 저장 후 종료
- ZZ 저장 후 종료 (:wq와 동일)
- :wq 파일 이름: 저장 후 파일 이름 지정
* vi 에디터에서는 비정상 종료 시 .swp 파일이 생성된다. 필요하지 않은 경우 삭제한다.
- 커서 이동
- h, j, k, l: 좌,하,상,우 커서 이동 (방향 키가 없는 키보드에서 사용)
- w: 다음 단어의 첫 글자로 이동
- b: 이전 단어의 첫 글자로 이동
- G: 마지막 행으로 가기
- :숫자: 지정한 숫자 행으로 이동 ex) :5
- 삭제
- x: 커서에 있는 글자 삭제
- X : 커서 앞에 있는 글자 삭제
- dw : 커서를 기준으로 뒤에 있는 단어 글자 삭제 (커서 포함)
- db : 커서를 기준으로 앞에 있는 단어 글자 삭제
- dd : 커서가 있는 라인(줄) 삭제
* dw, db, dd 명령 앞에 삭제할 숫자를 지정 가능 ex) 3dw, 2db, 4dd
* 삭제 된 내용은 버퍼에 저장되어 붙여넣기가 가능
- 복사
- yw : 커서를 기준으로 뒤에 있는 단어 글자 복사 (커서 포함)
- yb : 커서를 기준으로 앞에 있는 단어 글자 복사
- yy : 커서가 있는 라인(줄) 복사
* yw, yb, yy 명령 앞에 복사할 숫자를 지정 가능 ex) 3yw, 2yb, 4yy
- 붙여넣기 (복사, 삭제된 내용을 붙여넣는다.)
- p : 커서 다음에 붙여넣기
- P : 커서 이전에 붙여넣기
- 찾기
- /문자열 : 앞에서 부터 문자열을 찾는다.
- ?문자열 : 뒤에서 부터 문자열을 찾는다.
- n : 뒤로 검색
- N : 앞으로 검색
- 바꾸기
- :%s/old/new: 각 행의 처음 나오는 old를 찾아 new로 바꾼다.
- :%s/old/new/g: 모든 old를 찾아 new로 바꾼다.
- :%s/old/new/gc: 모든 old를 찾아 new로 바꾸기 전에 물어본다.
- 되돌리기(Undo), 다시실행(Redo)
- u : 이전으로 되돌리기 (Undo)
- Ctrl + r : 되돌리기한 것을 다시 실행 (Redo)
참고