윈도우 메모장 같은 툴인데, 상당히 강력하죠.
예전에는 이걸로 모~~든 걸 다할수 있었죠 ㅋㅋ
http://cafe.naver.com/okh0217
에서 오기훈님 께서 정리하신 사용법을 올립니다.
1. 화면단위 편집기(Screen Editor : VI)
1) vi란? (vi는 Visual의 약자이다.)
시스템을 관리하기 위한 DB화일 또는 일반 문자화일을 편집하거나 기타
프로그램 언어를 코딩할 경우 화면단위로 편집할 수 있는 기능을 제공한다
(VI를 사용하지 못할 경우 행단위 편집기인 ed를 사용 할 수 있다.)
** 참고로 이 VI에디터의 도스버전이 자료실에 올라와 있다.
2) vi의 시작과 종료
편집기 vi를 호출하기 위한 명령어의 일반적인 형태
% vi filename
┌───────────────────────────────┐
│~ │
│~ │
│~ │
│~ │
│~ 편 집 화 면 │
│~ │
│~ │
│~ │
│"filename"[New file] -------> 명령어 라인 │
└───────────────────────────────┘
ed에서와 같이 "filename"이 현재 디렉토리내에 존재하는 경우 그 화일 내
용은 편집을 위하여 임시 버퍼에 복사된다. 물론 "filename"이라는 화일이
존재하지 않으면 새로운 화일이 생성된다.
vi를 빠져 나오기 위한 명령 (ZZ, :q, :wq )
. ZZ 임시 버퍼의 내용을 vi로 호출할때 사용되었던 화일에 기록한후 vi
를 빠져나온다.
. :q vi를 중단하는 명령으로 ed의 q(quit)명령과 씔이 버퍼의 내용을 기
록하지 않는다.
. :wq ZZ 명령과 같은 것으로 이것은 기록 명령인 :w와 중지 명령인 :q를
연속적으로 수행하는 것과 같은 효과이다.
이러한 명령은 반드시 편집기의 명령어 모드에서 수행되어야 한다.
┌───────┐
│ (shell mode) │
│ 쉘모드 │
└──┬─┬──┘
│ │
│ │
VI 실행│ │VI 종료
│ │
│ │
┌──┴─┴───┐
Postion ─────┤(command mode)├───── TEXT Deleting
Changing │ 명령어 모드 │
└────────┘
│ │
│ │
문서편집│ │ESC
│ │
│ │
┌──┴─┴──┐
│(Insert mode) │
│ 입력모드 │
└───────┘
4) vi 사용법 (명령어 모드에서 사용되는 키이)
(1) 화면제어
ctrl + f 화면전체의 내용이 한 화면 위로 이동
ctrl + b 화면전체의 내용이 한 화면 아래로 이동
ctrl + e 화면전체의 내용이 한줄씩 위로 이동한다.
ctrl + y 화면전체의 내용이 한줄씩 아래로 이동한다.
(2) 커서(Cursor)의 제어
┌──┐
ENTER Key 다음행의 처음으로 이동 │ k │
j 한행 아래로 이동 │ │
k 한행 위로 이동 ┌──┼──┼──┐
l 현재행의 오른쪽으로 이동 │ h │ │ l │
h 현재행의 왼쪽으로 이동 │ │ │ │
└──┼──┼──┘
w 다음단어의 첫자로 이동 │ j │
b 바로 이전 단어의 앞 빈칸으로 이동 │ │
e 현재단어의 끝자로 이동 └──┘
^ 행의 제일왼쪽으로 이동
$ 행의 제일 오른쪽으로 이동
H 화면의 좌측상단으로 이동
M 화면의 좌측 중간으로 이동
L 화면의 좌측하단으로 이동
숫자G 지정한 숫자의 행으로 이동
:숫자
/문자열/ 오른쪽 하방향으로 문자열 검색
?문자열? 왼쪽 하방향으로 문자열 검색
n 아래로 검색을 계속함
N 위로 검색을 계속함
ctrl+g 현재의 화일이름과 행 수를 알려줌.
(3) 문안편집
a (append) 현재 커서가 위치한 문자의 다음위치부터 임력함
A 현재 커서가 있는 행의 마지막부터 입력함
i (insert) 현재 커서가 있는 위치부터 입력함
I 현재 커서가 있는 행의 처음부터 입력함
o (open) 현재커서가 있는 행의 다음행에 새로운 한행을 삽입하며서
입력함
O 현재커서가 있는위치에 새로운 한행을 삽입하면서 입력함
(4) 문안의 삭제
x 커서위치의 한문자 삭제
dw 커서위치의 한행을 삭제
dd 커서위치의 한행을 삭제
:1,$ d 1행부터 마지막행까지 삭제
D 커서위치의 오른쪽 모두 삭제
(5) 문안의 이동및 복사
nyy n행을 버퍼에 복사
p 버퍼에 복사된 내용을 화면에 인쇄한다.
-이동
1. 3dd 현재커서가 위치한 행으로부터 3행을 삭제(이동원지정)
(이동하고자 하는 3행을 현위치에서 삭제)
2. 이동시키고자 하는 행으로 커서를 가져간다.
3. p 지워진 3행이 커서가위치한 행 부터 지웠던 3행이 인쇄된다.
-복사
1. yy 현재커서가 위치한행을 버퍼에 복사한다.( 3yy : 3행복사)
2. 복사시키고자 하는 행으로 커서를 가져간다.
3. p 버퍼에 복사된 내용이 인쇄된다.
(6) 기타명령어
U (Undo) 직전에 수행한 명령을 취소 또는 복구한다.
r 한문자 변경
cw 한단어 변경
J 행결합
enter key 행삽입
:1,$ s/test/TEST/g 문장의 1행부터 마지막까지 "test"를 찾아서 대문
자 "TEST"로 치환한다.
:sh shell을 수행한다.
:!unix 명령어 unix 명령어를 수행하고 vi로 다시 돌아온다.
:r filename 지정한 화일을 수행하고 vi로 다시 돌아온다.
:w filename 현재내용을 지정한 filename으로 보관한다.
:1, 10 w filename 1행부터 10행까지만 지정한 filename으로 보관한다.