네모난 세상

[펌] VI 편집기 초간단 사용법 본문

ⓢtudy

[펌] VI 편집기 초간단 사용법

막다른골목 2004. 11. 11. 20:35
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으로저장하고 끝내기