VI Editor는 UNIX에
기본적으로 내포된 편집기다. 그러므로 UNIX가 설치된 환경에서는 언제든지
사용할 수 있으므로 특별한 소프트웨어를 사용하기보다는 VI Editor에 익숙해질
필요가 있다. 그리고 처음에는 낯설게 느껴지는 것이 당연하지만 사용하다보면
편리한 점을 많이 알 수 있다. 때때로는 마우스로 작업했던 PC용 편집기보다
강력한 기능들이 상당히 많이 있다는 것을 알 수 있을 것이다.
5.1
모드 전환방법
이 편집기는 명령어
모드와 편집모드로 나뉘게 되는데, VI Editor를 실행시키게 되면 처음에는 명령어모드
이다. 이렇게 모드가 두 가지이면 일반 PC에서 사용하는 편집기는 시작부터
종료까지 편집모드인 것을 감안한다면 VI Editor는 모드가 두 가지이므로 여러
가지 일을 할 수 있는 것임이 틀림없다. 구체적인 명령어는 다음에 기술하겠지만
Esc 키(편집모드에서 명령모드로 전환)를 잘 이용하면 된다.
5.2
입력형식
# vi index.html
5.3
삽입관련 명령어
command
i : 입력모드로 전환,
커서의 앞에 삽입
I : 그 라인의
첫칸에 삽입
a : (append)커서의
오른쪽에 새로운 내용을 추가
A : 그 라인의 마지막
문자 뒤에 새로운 내용을 추가
o : 커서가 있는 행
아래에 새로운 내용을 첨가
O : 커서가 있는 행위에
새로운 내용을 첨가
mo : move
co : copy
5.4
삭제관련 명령어
dd
: 커서가 있는 한줄삭제
5dd
: 5 라인 삭제
x
: 커서가 있는 한 문자 삭제
dw
: 한 단어 삭제
dO
: 커서 위치로부터 그 라인의 첫 칸까지 삭제
d$
: 커서 위치로부터 그 라인의 끝까지 삭제
3dw
: 3 단어 삭제
5.5
치환관련 명령어
:r : (replace)커서
위치의 한 문자를 다른 문자로 치환
예1) :rb : 커서가
있는 곳의 문자를 b로 치환
예2) :4rb : 커서와
커서 오른쪽의 3문자를 b로 바꿈
:R : 커서가 위치한
문자를 Esc키를 누를 때까지 대체
:cw : 한 단어 치환
:3cw : 3단어 치환
:C : 커서가 있는 곳으로부터
라인의 끝까지의 문장을 치환
:cc : 현재라인 치환
예1) :5cc : 5라인
치환
:/happy : '/'기호
뒤에 지정한 문자열을 커서가 있는 위치 이후부터 찾아표시
:?happy : '?'기호
뒤에 지정한 문자열을 커서가 있는 위치 위쪽으로 가면서 찾아표시
:n : (next) '/' 나
'?' 탐색명령을 사용한 다음에 발견한 곳으로 진행
5.6
검색관련 명령어
/and : 커서 이후의
and를 검색, n(계속 검색)
/and/- : 라인의 첫칸에
커서가 오게 함
5.7
복구관련 명령어
: u : (undo) 바로 이전에
실행된 명령어 취소
:U : 현재 행에서 사용한
모든 명령을 취소
5.8
이동관련 명령어
방향키가 듣지
않을 때는 다음의 표를 참조한다. 이에 대응하는 키를 나타내었다.
h = ← 커서를
한 칸 왼쪽으로 이동
j = ↓ 커서를
한 줄 아래로 이동
k = ↑ 커서를
한 줄 위로 이동
l = → 커서를
한 칸 오른쪽으로 이동
ctrl+ f
: (forward)한 쪽 아래로 이동
ctrl+ b : (backward)한
쪽 위로 이동
ctrl+ d
: (down)반 쪽 아래로 이동
ctrl+ u
: (up)반 쪽 위로 이동
ctrl+ g
: 커서가 몇째 줄에 있는지 표시
:b : 단어의 시작위치로
이동
:e : 단어의 끝 부분으로
이동
:0 : 행의 시작부분으로
이동
:$ : 행의 끝부분으로
이동
:nG : (Go)파일 전체에서
n번째 줄로 이동
5.9
전환 및 종료 명령어
:J : (Join)커서 위치의
줄과 그 뒤의 문장을 연결
: 명령어모드로
전환
:q : 끝내기
:q! : 저장 않고 끝내기
5.10
파일관련 명령어
:w : 원래의 파일 명으로
쓰기
:w filename : 새로운
filename으로 기록
:r filename : 지정한
파일로부터 그 내용을 읽어옴
:!command : 지정한
명령을 실행
:!sh : 새로운 shell을
실행
!!command : 명령을
실행하고 커서 라인위치 라인에 output을 출력
:e filename : Editor를
끝내지 않고 새 파일을 편집
:e# : 다시 복귀
wq : 현재의 filename으로
저장하고 끝내기