vi editor (vi 편집기)
1970년대 중반에 개발된 편집기
vi의 모드
- 명령모드
- 여러 단축 명령어(단축키)를 이용해 문서 편집
- 잘라내기, 복사하기, 라인삭제, 라인이동
- 실행모드(ex명령모드)
- 문서 편집기의 메뉴와 연관이 있다고 생각하면 됨
- 파일저장, 파일읽기, vi 종료, 찾기, 바꾸기 등
- 화면 제일 하단 부분에 나오게 됨
- 파일 관련 메뉴나 종료는 명령모드에서 ':'으로 진입
- 문서 내용 찾기, 바꾸기(치환) '/'으로 진입
- 입력모드
- 문서의 편집
- 명령모드에서 i (insert) 혹은 o
- 화면 제일 하단에 --INSERT--, --REPLACE--로 나옴
VI의 모드는 항상 명령모드를 거쳐서 실행모드와 입력모드로 진입이 되어야 함.
명령 모드
1. 커서 이동
- hjkl : 아래 위 (커서 키로도 이동이 됨)
- gg : 제일 첫 행
- G : 문서의 제일 마지막 행
- $ : 해당 라인의 마지막
- ^ : 해당 라인의 처음
- set nu : 라인 넘버 표시
- : n : n번 라인으로 이동 (절대 이동)
- n Enter : 커서가 위치한 라인부터 해당 숫자만큼의 라인으로 이동 (커서 위치부터 라인번호 상대 이동)
2. 텍스트/행 삭제
- x : 한글자씩 삭제 (delete와 동일)
- n x : n개 만큼의 글자 삭제
- dw : 한단어 삭제 (단어는 띄어쓰기로 구분)
- dd : 커서가 위차한 행을 삭제
- n dd : n 번만큼의 라인 삭제
- u : 직전 행동 취소 (ctrl + z)
- n1 , n2d : n1 부터 n2 까지 라인 삭제
3. 복사 (yanked) 붙여넣기 (paste)
- yy : 커서가 위치한 줄 복사
- p : 커서가 위치한 곳 아래행에 붙여넣기
- P : 커서가 위치한 곳 윗 행에 붙여넣기
- 1,2 co 5 : 1행부터 2행까지 복사 후 5행 다음으로 복사
- 1,2 m 5 : 1행부터 2행까지 복사 후 5행 위로 이동
블럭 지정 v키를 누르고 화면 하단에 --VISUAL-- 표시가 되고 블럭지정이 되면서 커서가 이동이 되고 y키를 누르면 복사 됨 p키를 누르면 붙여넣기가 됨
- ctrl + G 현재 파일 정보와 커서의 라인, 열 정보를 보여줌
- :set nu : 라인 번호 보여주기
- :set nonu : 라인 번호 감추기
4. 찾기, 바꾸기
찾기
실행모드 (ex 명령모드) 즉 명령모드에서 아래 키를 누르면 바로 실행모드 진행이 됨
- / : 검색할 문자열 패턴 커서 기준으로 오른쪽부터 아래 방향
- ? : 검색할 문자열 패턴 커서기준으로 왼쪽부터 윗 방향
패턴 매치가 되면 찾기가 중단
계속 검색 n 커서 오른쪽 아래 방향 다음 검색
계속 검색 N 커서 왼쪽 위 방향으로 이전 검색
바꾸기
- :s /찾아서 바꿀 문자열 패턴/바꿀문자열
- :s /찾아서 바꿀 문자열 패턴/바꿀문자열/g : g 해당 문서 전체에서 찾아서 변경
- :s /찾아서 바꿀 문자열 패턴/바꿀문자열/gi : 대소문자 구분 안함
5. 저장 실행모드(ex명령모드)
- :w : 저장시 기존 파일 대체할 것인지 yes/no 선택
- :w! : 강제로 저장
- : w 파일명 : 해당 파일명으로 저장
6. vi 종료
- :q : 나가기
- :q! : 물어보지않고 강제로 나가기
- :wq! : 저장하고 나가기
- :e! : 원래의 파일 다시 불러오기
입력 모드
명령모드 -> 입력모드의 전환
- i : 현재 커서 위치부터 입력모드 시작
- a : 현재 커서가 위치한 다음 칸(오른쪽부터 입력 시작)
- o : 현재 커서가 위치한 다음 행에 빈줄을 생성 후 입력시작
- s : 현재 커서가 위치한 한 문자를 삭제한 후 입력 시작
- r : --REPLACE-- 치환함.
- I : 현재 커서가 위치한 행의 처음부터 입력 시작
- A : 현재 커서가 위치한 행의 마지막부터 입력 시작
- O : 현재 커서가 위치한 이전 행에 빈줄을 생성 후 입력 시작
- S : 현재 커서가 위치한 한 행을 삭제한 후 입력 시작