편집 시작
=========
$vi fname
Vi 편집기 작업은 명령모드와 입력모드의 두 상태가 있다.
초기 'vi fname'을 실행하면 창이 바뀌면서 명령모드(Command mode)가 된다.
1) 명령모드: 커서의 이동, 글자/단어/줄의 삭제나 블럭의 설정 등
. 입력이 아닌 상태.
. 작업 중 언제든지를 누르면 명령모드가 된다.
2) 입력모드: 키보드로 입력되는 모든 글자가 입력되는 상태.
.입력모드(Insert mode) 들어가기 : 'i'나 'a'(커서 다음에 입력)
화면 하단에 "Insert" 표시 됨.
.입력모드에서는 커서를 이동시킬 수 없다.
다만 버젼과 환경에 따라 화살표 키(-> <- up, down)로 이동이 되는 경우도 있음.
.입력모드 나가기(exit):
.다음줄 입력 : 'o'
3) Cursor 이동: up 'k', down 'j', left 'h', right 'l'
* 명령모드에서만 사용하여야 함.
4) 삭제:
.Delete 1 character: 'x'
.Delete multi character (ex 3 letters): '3x'
.Delete line 'dd'
.Paste 'p' (next line), 'P' (previous line)
dd 후 사용
.Delete multi line (ex 3 lines delete): '3dd'
5) 수정:
.Modify 1 letter 'r' 화면 하단에 "Replace" 표시 됨.
.Modify multi letters 'R'
6) 현재 로드된 파일 정보
.Refresh(다시 보기) '^L'
.Current information(파일 정보) '^G'
.Search a word(찾기) '/word'
.Search again(다시 찾기) 'n'
7) Undo(실행 취소) 'u'
8) Repeat(실행 반복) '.'
9) 저장:
.Save ':w'
.Save file name as tt('tt'라는 이름으로 저장) ':w tt'
.Save and exit(현재의 파일로 저장하고 나가기) 'ZZ', ':wq'
.Exit(Vi 나가기) ':q'
.Exit without saving(저장하지 않고 나가기) ':q!'
10) Tips: 다음과 ^L(refresh)를 자주 사용하시오!
11) 라인(줄) 명령:
.Line 명령은 ':'로 시작한다. 화면 하단에 ":" 표시.
.Read and insert a file fnme('fname' 파일을 커서 앞에 끼워 넣기) ':r fname'
Cancel all modification and edit again(저장한 이후 모든 작업을 취소하고 다시 편집함) ':e!'
* vi 편집기 유용한 팁(습관):
1) [ESC]를 수시로 눌러 명령모드를 작업 기준모드로 삼는다.
[ESC]는 몇번을 눌러도 좋으며, 키가 잘 안눌리는 수도 있으니 수시로
[ESC] 키를 누르는 것이 좋다.
2) 글자가 깨지거나 화면이 이상할 때마다 CTRL-L을 수시로 눌러 화면을
깨끗케한다. CTRL-L도 수시로 사용하는 것이 좋다.
입력 예 1)
==========
1) $vi test.c
-----------------------------------------------------------
|~ |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|"test.c" [New File] |
-----------------------------------------------------------
2) [ESC], 'i' 입력모드
3) 입력하고자 하는 내용을 넣는다.
main()
{ printf("Hello! Internet Programming !!!\n");
}
4) [ESC] key나 'ZZ'(대문자 Z 주의)를 눌러 입력모드를 나온다.
5) :wq 저장하고 vi 편집기 마침
6) ls -l test.c 파일 확인
7) more test.c 파일 내용 확인
편집 수정 예 2)
===============
1) $vi test.c
2) [ESC], cursor 이동 명령(k, j, h, l)을 이용하여 고치고자 하는 문자에 커서를
위치한다. 예로써 커서를 Programming의 g에 놓는다.
3) 'i' 입력모드 실행
4) ' is fun'을 입력하고 [ESC] key를 눌러 입력모드를 나온다.
main()
{ printf("Hello! Internet Programming is fun !!!\n");
}
5) ':wq'나 'ZZ'(대문자 Z 주의)를 눌러 저장하고 vi 편집기를 나간다.
6) ls -l test.c 파일 확인
7) more test.c 파일 내용 확인
편집 수정 예 3)
===============
1) $vi test.c
2) [ESC], cursor 이동 명령(k, j, h, l)을 이용하여 고치고자 하는 문자에 커서를
위치한다. 예로써 커서를 fun의 f에 놓는다.
3) 'x'를 세번 혹은 '3x'하여 'fun'을 삭제한다.
4) 'i' 입력모드 실행
5) 'very interesting'을 입력하고 [ESC] key를 눌러 입력모드를 나온다.
main()
{ printf("Hello! Internet Programming is very interesting !!!\n");
}
6) ':wq'나 'ZZ'(대문자 Z 주의)를 눌러 저장하고 vi 편집기를 나간다.
7) ls -l test.c 파일 확인
8) more test.c 파일 내용 확인
편집 수정 예 4)
===============
1) $vi test.c
2) [ESC], cursor 이동 명령(k, j, h, l)을 이용하여 고치고자 하는 문자에 커서를
위치한다. 예로써 커서를 두 번째 줄에 놓는다.
3) 'o' 다음 줄 입력모드 실행
4) 'printf("My name is Seo Kyeong Dae.\n");'을 입력하고 [ESC] key를 눌러 입력모드를 나온다.
main()
{ printf("Hello! Internet Programming is very interesting !!!\n");
printf("My name is Seo Kyeong Dae.\n");
}
5) ':wq'나 'ZZ'(대문자 Z 주의)를 눌러 저장하고 vi 편집기를 나간다.
6) ls -l test.c 파일 확인
7) more test.c 파일 내용 확인
편집 수정 예 5) : 인터넷 실행을 위한 수정
=========================================
1) cd ~/public_html 웹 디렉토리로 이동.
만약에 public_html 디렉토리가 없으면
cd ~로 홈 디렉토리로 이동 후 'mkdir public_html'로 디렉토리를 만든다.
2) 다시 'mkdir cgi-bin'으로 cgi-bin 디렉토리를 만든다.
3) cp test.c cgi-bin/myname.c <== 'test'를 'myname.cgi'로 복사
4) cd cgi-bin
5) $vi myname.c
6) [ESC], cursor 이동 명령(k, j, h, l)을 이용하여 고치고자 하는 문자에 커서를
위치한다. 예로써 커서를 두 번째 줄 '{ '의 빈 칸(space)으로 이동시킨다.
main()
{_ printf("Hello! Internet Programming is very interesting !!!\n");
printf("My name is Seo Kyeong Dae.\n");
}
7) 'i' 다음 줄 입력모드 실행
8) 'printf("Content-Type: text/html\n\n"); # 줄바꿈
printf("
\n");'
printf("
printf("My name is Seo Kyeong Dae.\n");
printf("
\n");
}
15) ':wq'나 'ZZ'(대문자 Z 주의)를 눌러 저장하고 vi 편집기를 나간다.
16) ls -l myname.c 파일 확인
17) more myname.c 파일 내용 확인
18) gcc -o myname.cgi myname.c
19) ./myname.cgi 테스트 실행 및 결과 확인.
20) 웹 브라우저에서 'http://cim.skuniv.ac.kr/~id/cgi-bin/myname.cgi'로 실행
확인.
----------------------------------------------------------------------------------------------------------------------------------
=========
$vi fname
Vi 편집기 작업은 명령모드와 입력모드의 두 상태가 있다.
초기 'vi fname'을 실행하면 창이 바뀌면서 명령모드(Command mode)가 된다.
1) 명령모드: 커서의 이동, 글자/단어/줄의 삭제나 블럭의 설정 등
. 입력이 아닌 상태.
. 작업 중 언제든지
2) 입력모드: 키보드로 입력되는 모든 글자가 입력되는 상태.
.입력모드(Insert mode) 들어가기 : 'i'나 'a'(커서 다음에 입력)
화면 하단에 "Insert" 표시 됨.
.입력모드에서는 커서를 이동시킬 수 없다.
다만 버젼과 환경에 따라 화살표 키(-> <- up, down)로 이동이 되는 경우도 있음.
.입력모드 나가기(exit):
.다음줄 입력 : 'o'
3) Cursor 이동: up 'k', down 'j', left 'h', right 'l'
* 명령모드에서만 사용하여야 함.
4) 삭제:
.Delete 1 character: 'x'
.Delete multi character (ex 3 letters): '3x'
.Delete line 'dd'
.Paste 'p' (next line), 'P' (previous line)
dd 후 사용
.Delete multi line (ex 3 lines delete): '3dd'
5) 수정:
.Modify 1 letter 'r' 화면 하단에 "Replace" 표시 됨.
.Modify multi letters 'R'
6) 현재 로드된 파일 정보
.Refresh(다시 보기) '^L'
.Current information(파일 정보) '^G'
.Search a word(찾기) '/word'
.Search again(다시 찾기) 'n'
7) Undo(실행 취소) 'u'
8) Repeat(실행 반복) '.'
9) 저장:
.Save ':w'
.Save file name as tt('tt'라는 이름으로 저장) ':w tt'
.Save and exit(현재의 파일로 저장하고 나가기) 'ZZ', ':wq'
.Exit(Vi 나가기) ':q'
.Exit without saving(저장하지 않고 나가기) ':q!'
10) Tips: 다음
11) 라인(줄) 명령:
.Line 명령은 ':'로 시작한다. 화면 하단에 ":" 표시.
.Read and insert a file fnme('fname' 파일을 커서 앞에 끼워 넣기) ':r fname'
Cancel all modification and edit again(저장한 이후 모든 작업을 취소하고 다시 편집함) ':e!'
* vi 편집기 유용한 팁(습관):
1) [ESC]를 수시로 눌러 명령모드를 작업 기준모드로 삼는다.
[ESC]는 몇번을 눌러도 좋으며, 키가 잘 안눌리는 수도 있으니 수시로
[ESC] 키를 누르는 것이 좋다.
2) 글자가 깨지거나 화면이 이상할 때마다 CTRL-L을 수시로 눌러 화면을
깨끗케한다. CTRL-L도 수시로 사용하는 것이 좋다.
입력 예 1)
==========
1) $vi test.c
-----------------------------------------------------------
|~ |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|"test.c" [New File] |
-----------------------------------------------------------
2) [ESC], 'i' 입력모드
3) 입력하고자 하는 내용을 넣는다.
main()
{ printf("Hello! Internet Programming !!!\n");
}
4) [ESC] key나 'ZZ'(대문자 Z 주의)를 눌러 입력모드를 나온다.
5) :wq 저장하고 vi 편집기 마침
6) ls -l test.c 파일 확인
7) more test.c 파일 내용 확인
편집 수정 예 2)
===============
1) $vi test.c
2) [ESC], cursor 이동 명령(k, j, h, l)을 이용하여 고치고자 하는 문자에 커서를
위치한다. 예로써 커서를 Programming의 g에 놓는다.
3) 'i' 입력모드 실행
4) ' is fun'을 입력하고 [ESC] key를 눌러 입력모드를 나온다.
main()
{ printf("Hello! Internet Programming is fun !!!\n");
}
5) ':wq'나 'ZZ'(대문자 Z 주의)를 눌러 저장하고 vi 편집기를 나간다.
6) ls -l test.c 파일 확인
7) more test.c 파일 내용 확인
편집 수정 예 3)
===============
1) $vi test.c
2) [ESC], cursor 이동 명령(k, j, h, l)을 이용하여 고치고자 하는 문자에 커서를
위치한다. 예로써 커서를 fun의 f에 놓는다.
3) 'x'를 세번 혹은 '3x'하여 'fun'을 삭제한다.
4) 'i' 입력모드 실행
5) 'very interesting'을 입력하고 [ESC] key를 눌러 입력모드를 나온다.
main()
{ printf("Hello! Internet Programming is very interesting !!!\n");
}
6) ':wq'나 'ZZ'(대문자 Z 주의)를 눌러 저장하고 vi 편집기를 나간다.
7) ls -l test.c 파일 확인
8) more test.c 파일 내용 확인
편집 수정 예 4)
===============
1) $vi test.c
2) [ESC], cursor 이동 명령(k, j, h, l)을 이용하여 고치고자 하는 문자에 커서를
위치한다. 예로써 커서를 두 번째 줄에 놓는다.
3) 'o' 다음 줄 입력모드 실행
4) 'printf("My name is Seo Kyeong Dae.\n");'을 입력하고 [ESC] key를 눌러 입력모드를 나온다.
main()
{ printf("Hello! Internet Programming is very interesting !!!\n");
printf("My name is Seo Kyeong Dae.\n");
}
5) ':wq'나 'ZZ'(대문자 Z 주의)를 눌러 저장하고 vi 편집기를 나간다.
6) ls -l test.c 파일 확인
7) more test.c 파일 내용 확인
편집 수정 예 5) : 인터넷 실행을 위한 수정
=========================================
1) cd ~/public_html 웹 디렉토리로 이동.
만약에 public_html 디렉토리가 없으면
cd ~로 홈 디렉토리로 이동 후 'mkdir public_html'로 디렉토리를 만든다.
2) 다시 'mkdir cgi-bin'으로 cgi-bin 디렉토리를 만든다.
3) cp test.c cgi-bin/myname.c <== 'test'를 'myname.cgi'로 복사
4) cd cgi-bin
5) $vi myname.c
6) [ESC], cursor 이동 명령(k, j, h, l)을 이용하여 고치고자 하는 문자에 커서를
위치한다. 예로써 커서를 두 번째 줄 '{ '의 빈 칸(space)으로 이동시킨다.
main()
{_ printf("Hello! Internet Programming is very interesting !!!\n");
printf("My name is Seo Kyeong Dae.\n");
}
7) 'i' 다음 줄 입력모드 실행
8) 'printf("Content-Type: text/html\n\n"); # 줄바꿈
printf("
\n");'
printf("
Hello! Internet Programming is very interesting !!!
\n");printf("My name is Seo Kyeong Dae.\n");
printf("
\n");
}
15) ':wq'나 'ZZ'(대문자 Z 주의)를 눌러 저장하고 vi 편집기를 나간다.
16) ls -l myname.c 파일 확인
17) more myname.c 파일 내용 확인
18) gcc -o myname.cgi myname.c
19) ./myname.cgi 테스트 실행 및 결과 확인.
20) 웹 브라우저에서 'http://cim.skuniv.ac.kr/~id/cgi-bin/myname.cgi'로 실행
확인.
----------------------------------------------------------------------------------------------------------------------------------
Vi 편집기 입문(Begging Editor vi) Vi 편집기 작업은 명령모드와 입력모드의 두 상태가 있다. 초기 'vi fname'을 실행하면 창이 바뀌면서 명령모드(Command mode)가 된다. 1) vi 시작: . $vi fname vi vi편집기를 호출한다. vi filename 기존에 있는 파일이면 그 파일을 열고 없는 파일이면 새로 만든다. vi + 10filename 지정화일의 10번째 행부터 화일열기 vi +/"school" filename 지정화일내의 school이란 단어가 처음나오는 시점부터 열기 vi -r filename 손상된 파일을 복구 view filename 수정없이 읽기전용으로 열기 vi filenames 여러 파일명이나 와일드카드(*,?)로 여러 파일을 차례로 불러 편집할 수 있다.(':n' next) 2) 명령모드: 커서의 이동, 글자/단어/줄의 삭제나 블럭의 설정 등 . 입력이 아닌 상태. . 작업 중 언제든지를 누르면 명령모드가 된다. 3) 입력모드: 키보드로 입력되는 모든 글자가 입력되는 상태. . 입력모드(Insert mode) 들어가기 : 'i'나 'a'(커서 다음에 입력) 화면 하단에 "Insert" 표시 됨(표시가 안되는 화면도 있음). . 입력모드에서는 커서를 이동시킬 수 없다. 다만 버젼과 환경에 따라 화살표 키(-> <- up, down)로 이동이 되는 경우도 있음. . 입력모드 나가기(exit): . 다음줄 입력 : 'o' a 커서 오른쪽에 문자삽입 A 커서 오른쪽, 행의끝에 문자삽입 i 커서 왼쪽에 문자삽입 I 커서왼쪽, 행의 처음에 문자삽입 o 커서 아래에 행 삽입 O 커서 위에 행 삽입 작업완료후 반드시 입력 4) Cursor 이동: up 'k', down 'j', left 'h', right 'l' * 명령모드에서만 사용하여야 함. h 왼쪽으로 이동 k j 아래로 이동 ^ k 위로 이동 h <- _ -> l l 오른쪽으로 이동 w 한단어 오른쪽으로이동 v b 한단어 왼쪽으로 이동 j Return 한행아래로 이동 Backspace 한문자 왼쪽으로 이동 Spacebar 한문자 오른쪽으로 이동 H 화면의 맨위로 이동 M 화면의 중간으로 이동 L 화면의 맨 아래로 이동 ^F 한화면 앞으로 이동 ^D 반화면 앞으로 이동 ^B 한화면 뒤로 이동 ^U 반화면 뒤로 이동 5) 삭제: . Delete 1 character: 'x' . Delete multi character (ex 3 letters): '3x' . Delete line 'dd' . Paste 'p' (next line), 'P' (previous line) dd 후 사용 . Delete multi line (ex 3 lines delete): '3dd' x 문자삭제 dw 단어삭제 dd 행 삭제 D 커서 오른쪽 행 삭제 :5,10 d 5-10째 행 삭제 6) 수정: . Modify 1 letter 'r' 화면 하단에 "Replace" 표시 됨. . Modify multi letters 'R' cw 단어 변경 cc 행 변경 C 커서 오른쪽의 행 변경 s 커서가 위치한 문자열 대체 r 커서 위치 문자를 다른 문자로 대체 r-Return 행 분리 J 현재 행과 아래 행 결합 xp 커서 위치 문자와 오른쪽 문자교환 - 문자형(대,소문자) 변경 u 이진 명령 취소 U 행 변경 사항 취소 :u 이전의 최종행 취소 8) 텍스트 복사 및 이동 yy 현재 커서가 있는 행의 전체 복사 Y 행 yank(버퍼에 복사) yw 현재 커서가 있는 단어 복사 y$ 현재 커서가 있는 곳에서 그 행의 끝까지 복사 y^ 현재 커서가 있는 곳에서 그 행의 시작까지 복사 p yank 되거나 삭제된 행을 현재 행 아래에 삽입 P yank되거나 삭제된 행을 현재 행 위에 삽입 :1,2 co 3 1-2행을 3행 다음으로 복사 :4,5 m 6 4-5행을 6행 다음으로 이동 9) 행 찾기 및 각 행마다 번호 표시 G 파일의 마지막 행으로 가기 12G 파일의 12번째 행으로 가기 :set nu 행번호 표시 :set nonu 행번호 숨기기 10) 단어나 문장 찾기 및 바꾸기 /string/ string탐색 ?string? string 역 방향 탐색 n(N) string의 다음(이전) 계속 탐색 :g/search-string/s//replace-string/gc 각 발생 탐색후 확인하고 대체 :s/str/rep/ 현재 행의 str을 rep로 대체 :1,.s/str/rep/ 1부터 현재 행의 str을 rep로 전부 대체 :%s/str/rep/g 파일 전체 str을 rep로 전부 대체 11) 마크 설정과 마크 호출 . 문자 'm' 다음에 마크 이름으로 'a'에서 'z' 사이의 문자 하나를 선택한다. 예) 'a'라는 이름으로 마크 설정: ma . 이동이나 호출은 '(single quotation mark)후 'a'에서 'z' 사이의 문자 하나를 선택 한다. 예) 'a 설정된 마크 'a'로 이동 예) :'a, d 마크 a에서부터 현재 커서가 있는 줄까지 삭제. 12) Buffering(특정 이름의 버퍼에 저장) . "(a-z)nyy (a-z)라는 이름의 버퍼에 n줄 저장 예) "a5yy 'a'라는 이름의 버퍼에 현재 줄부터 5줄을 저장. . "(a-z)p (a-z)버퍼의 내용을 다음 줄에(p) 넣음. 13) 다른 파일 삽입 :r filename 커서 다음에 파일 삽입 :20 r filename 파일을 20번째 행 다음에 삽입 14) 단축 단어나 키(abbreviation) 사용법 . :ab 약어(단축단어나 키) 바꿀 단어나 키 예) :ab WW w! /tmp/test ':WW'명령 /tmp/test'로 저장. 예) :ab inp internet programming 입력모드에서 'inp'를 넣고 빈칸이나 줄바꿈 등을 치면 'internet programming'으로 바뀐다. 15) 현재 로드된 파일 정보 . Refresh(다시 보기) '^L' . Current information(파일 정보) '^G' . Search a word(찾기) '/word' . Search again(다시 찾기) 'n' . 현재 설정된 vi 환경보기 ':set' 16) Undo(실행 취소) 'u' 17) Repeat(실행 반복) '.' 18) 일련의 명령들을 하나의 명령으로 만들기 :map (a-z,A-Z) 명령들 예) :map z ncwPARK^[ 'z' 명령으로 앞에서 찾은 단어('/단어' 실행)를 찾은(n) 후 해당 단어를 PARK로 바꾼다.('^['는 로 '^V '로 입력한다.) 예) :map Z dwwP 명령 'Z'는 현재 커서가 위치한 단어와 다음 단어를 맞바꾼다. 19) 저장: . 저장 ':w' . 'tt'라는 이름으로 저장 ':w tt' . 'tt'라는 이름의 파일이 이미 존재할 때에는 덮어쓰기(강제 save)의 의미로 '!'을 추가. ':w! tt' . 현재의 파일로 저장하고 나가기(종료) 'ZZ', ':wq' . Vi 나가기 ':q' . 저장하지 않고 나가기 ':q!' :w 변경사항 저장 :w filename 지정한 파일로 저장 :wq 변경사항 저장후 vi종료 ZZ 변경사항 저장후 vi종료 :q! 변경사항을 저장하지 않고 vi종료 . MS Windows OS에서 사용하는 Vim이나 윈도우 텍스트 편집기 등에서 작성된 문서는 다음줄(줄 바꾸기) 문자코드가 유닉스( )와 다르다. DOS(Windows) 텍스트 문서를 유닉스 vi로 보면 ^M로 보인다(DOS 형식인데 안 보일 수도 있음). 문서를 저장하기 전에 :set로 보아 fileformat=unix 혹은 fileformat=dos로 저장 형식을 알 수 있다. 아래 환경설정 참조) :set fileformat=unix 한 후 저장하면 유닉스 형식으로 저장된다. 혹은 모든 '^M'코드를 삭제하면 유닉스형식이 된다. ':%s/^M//' 여기서 '^M'은 '^V^M'로 입력할 수 있다. :set fileformat=unix 저장시 유닉형식 설정. :set fileformat=dos 저장시 DOS 형식 설정. 20) Tips: 다음 과 ^L(refresh)를 자주 사용하시오! 21) 라인(줄) 편집 명령: . Line 명령은 ':'로 시작한다. 화면 하단에 ":" 표시. . :[n1,n2] command [범위] 명령 예1) Read and insert a file fnme('fname' 파일을 커서 앞에 끼워 넣기) ':r fname' 예2) Cancel all modification and edit again(저장한 이후 모든 작업을 취소하고 다시 편집함) ':e!' 22) 환경 설정 . :set
[출처] vi 사용법 초보|작성자 미토
또 다른 링크
http://blog.naver.com/klesaworks?Redirect=Log&logNo=80018024915
'Develop' 카테고리의 다른 글
[셰이더] D3DVERTEXELEMENT9 (0) | 2009.10.29 |
---|---|
XML (0) | 2009.10.28 |
네트워크 통신 (Server) (0) | 2009.10.23 |
네트워크 통신 (Client) (0) | 2009.10.23 |
키보드 이벤트 (0) | 2009.10.23 |