vi 편집기는 명령모드, 입력모드, 마지막 행 모드를 통해 사용한다.
Command mode
처음 vi 편집기에 들어오면 명령 모드가 된다.
여기서 방향키를 이용해 커서를 이동하거나, 한 줄 삭제, 한 줄 붙여넣기, 글자 하나 삭제를 할 수 있다.
Insert Mode
명령 모드에서 i(커서가 현재 위치한 부분부터 입력)나 a(커서 바로 다음 부분부터 입력) 입력을 통해 입력 모드로 전환한다.
여기서 자유롭게 글을 작성할 수 있다.
Last line mode
명령 모드에서 : 입력을 하면 화면 하단에 :____ 으로 입력 공간이 나온다.
여기서 현재까지 작성한 내용을 저장하고 편집기를 종료할지(wq), 즉시 종료할지(q, q!)를 결정할 수 있다.
- vi file : file 파일을 연다.
- vi + file : file 파일을 열고 커서를 본문의 마지막에 위치시킨다.
- i : 명령 모드에서 입력 모드로 변경한다. 현재 커서의 위치부터 입력한다.
- a : 명령 모드에서 입력 모드로 변경한다. 현재 커서 바로 다음부터 입력한다.
- o : 명령 모드에서 입력 모드로 변경한다. 현재 줄 다음 위치부터 입력한다.
- x : 커서가 위치한 곳의 글자 1개를 삭제한다.
- 5x : 글자 5개를 삭제한다.
- dw : 커서가 위치한 곳에서부터 다음 blank space까지 삭제한다.
- dd : 커사가 위치한 곳의 한 줄을 삭제한다. p로 복구할 수 있다.
- u : 작업을 취소한다. (undo)
- U : 현재 커서가 위치한 줄에서 했던 모든 작업을 취소한다.
- [Ctrl+R] : 작업을 되돌린다. (redo)
- yy : 현재 줄을 버퍼로 복사한다.
- 5yy : 5줄을 복사한다.
- k : 커서를 한 줄 위로
- j : 커서를 한 줄 아래로
- l : 커서를 한 칸 오른쪽으로
- h : 커서를 한 칸 왼쪽으로
- 0 : 커서가 있는 줄의 맨 앞으로 (home)
- $ : 커서가 있는 줄의 맨 뒤로 (end)
- ( : 현재 문장의 처음으로
- ) : 현재 문장의 끝으로
- { : 현재 문단의 처음으로
- } : 현재 문단의 끝으로
- [숫자]- : [숫자]만큼 윗 줄로 이동
- [숫자]+ : [숫자]만큼 아랫 줄로 이동
- G : 파일의 끝으로 이동
- 1G : 파일의 맨 처음으로 이동
- r : 한 문자 변경
- cc : 커서가 있는 그 줄의 내용 변경
- :w : 파일 저장
- :w [파일명] : [파일명]으로 파일 저장
- :q : vi 종료
- :q! : vi 강제 종료
- :wq : 파일 저장 후 vi 종료
- :wq! : 파일 저장 후 vi 강제 종료
- :f [파일명] : 파일 이름을 [파일명]으로 변경
- :[숫자] : 해당 라인으로 커서 이동
- :$ : 파일의 맨 끝 줄로 이동
- :e! : 마지막 저장 이후 모든 변경 취소
- :/[문자열] : 현재 커서부터 파일 앞쪽으로 [문자열] 검색
- :?[문자열] : 현재 커서부터 파일 뒤쪽으로 [문자열] 검색
- :set nu : 라인 번호 출력
- :set nonu : 라인 번호 출력 취소