vi edit 사용
작성자 : 김영철
등록날짜 : 2009.01.29 16:39
== Vi 사용법 ==
{{{
V I 편집기
text파일을 편집하기 위한 editor는 line editor "ed"와 screen editor "vi"가 사용된다.
vi 편집은 대화식 편집기(Interactive Text Editor) 로서 기존의 편집기 ex에 시초를 둔 디스플레이 지향의 편집기이며 ed 편집기보다 훨씬 편리한 기능을 부여 받으며, 화면 전체의 데이터를 편집할 수 있기 때문에 커서를 상하좌우 마음대로 이동시킬 수 있어 매우 편리하다.
파일 명은 사용자가 임의로 정할 수 있으며 14자 이내의 영, 숫자 조합이면 가능하며 특수문자($,%,=,+,-)와 함께 사용하는 것을 배제한다.
시작
$ vi file_name
text입력
text를 입력하는 방법중 하나는 문자 "a"(append 화면에 표시안됨)를 입력하고 text를 입력하며, 각행을 분리할 때 키를 누른다.
text 보관 및 종료
명령어 모드(인 상태)에서 ":"을 입력한 후 w로 해당파일을 보관하고 q!로 작업을 종료한다.
커서 명령
h 왼쪽으로 커서 이동
j 아래로 커서 이동
k 위로 커서 이동
l 오른쪽으로 커서이동
w 한 단어 오른쪽으로 커서 이동
b 한 단어 왼쪽으로 커서 이동
Return 한 문자 왼쪽으로 커서 이동
Backspsce 한 문자 으로 커서 이동
Space Bar 화면의 맨 위로 이동
H 화면의 중간으로 이동
M 화면의 중간으로 이동
L 화면의 맨 아래로 이동
Ctrl+F 한 화면 앞으로 이동
Ctrl+D 반 화면 앞으로 이동
Ctrl+B 한 화면 뒤로 이동
Ctrl+U 반 화면 뒤로 이동
문자와 행 삽입
a 커서 오른쪽에 문자 삽입
A 커서 오른쪽, 행의 끝에 문자삽입
i 커서 왼쪽에 문자삽입
I 커서 왼쪽,행의 처음에 문자 삽입
o 커서 아래에 행 삽입
O 커서 위에 행 삽입
작업종료후 입력
텍스트 변경
cw 단어 변경
cc 행 변경
C 커서 오른쪽의 행 변경
s 커서가 위치한 문자열 대체
r 커서 위치 문자를 다른 문자로 대체
r-Return 행 분리
J 현재 행과 아래 행 결합
xp 커서 위치 문자와 오른쪽 문자교환
u 이전 명령 취소
U 행 변경 사항 취소
:u 이전의 최종행취소
텍스트 삭제
x 문자 삭제
dw 단어 삭제
dd 행 삭제
D 커서 오른쪽 행 삭제
:5,10 d 5-10번째 행 삭제
텍스트복사 및 이동 명 령 어
yy 행 yank 또는 복사
Y 행 yank 또는 복사
p yank되거나 복사된 행 현재행 아래 삽입
P yank되거나 복사된 행 현재행 위에 삽입
:1,2 co 3 1-2행을 3행 다음으로 복사
:4,5 m 6 4-5행을 6행 다음으로 이동
행번호 설정
:set nu 행번호 표시
:set nonu 행번호 숨기기
탐색 및 대체
/string/ string 탐색
?string? string 역 방향 탐색
n(N) string의 다음(이전) 계속 탐색
:s/str/rep 현재행의 str을 rep로 대체
:%s/str/rep/g 파일 전체 str을 rep로 대체
보관 및 종료
:w 변경사항 보관
:wp 변경사항 보관후 vi 복관
:q! 변경사항을 보관하지않고 종료
:wq! 변경사항 보관후 종료
vi 명령들
1. Cursor를 옮기는 여러가지 방법
2. 화면을 옮기는 여러가지 방법
3. 한 화면 안에서 cursor를 옮기는 방법
4. 한 line 안에서 cursor를 옮기는 방법
5. 검색
6. vi를 빠져나가는 방법
7. 삽입 mode
8. Yanking : (Copying)
9. Deleting
10. Putting
11. Interactive edit : (search and replace)
12. Global 명령
13. Reading in files
14. 여러 화일의 edit
15. Miscellancenous commands
1. Cursor를 옮기는 여러가지 방법
k(-)
||
h(bs) <------> l(sp)
||
j(+)
h,j,k 와 i 를 이용하영 간단히 키보를 누르면 cursor의 위치가 변경됩니다.
괄호에 있는 키를 선택하여도 됩니다.
bs : BackSpace
sp : Space bar
2. 화면을 옮기는 여러가지 방법
^f - (FORWARD 화면을 one page 앞으로 옮김)
^b - (BACKWARD 화면을 one page 뒤으로 옮김)
^d - (DOWN 화면을 반 page 앞으로 옮김)
^u - (UP 화면을 반 page 뒤으로 옮김)
3. 한 화면 안에서 cursor를 옮기는 방법
H - HOME, 한 화면의 top line으로 옮긴다.
M - MIDDLE, 한 화면의 중간으로 옮긴다.
L - LAST, 한 화면의 마지막 line으로옮긴다.
G - GOTO, 화일의 마지막 line으로 옮긴다.
nG - GOTO nth line the file (or :n)
^G - GIVES file status
4. 한 line 안에서 cursor를 옮기는 방법
w - WORD, 한단어 앞으로
b - BACKWARD, 한단어 뒤로
e - END, 현재 cursor가 위치한 맨 뒤로
o - zero, line의 맨 앞으로 (or ^)
$ - end, line의 맨뒤로
5. 검색
/pattern - scan (/ 'pattern'이라는글자를 현재 cursor가 위치한 곳의 다음 단어를 검색)
?pattern - scan (? 'pattern'이라는 글자를 현재 cursor가 위치한 곳의 앞 단어를 검색)
n - 앞쪽에서 입력했었던 문자 'pattern' 의 다음단어를 검색
N - 앞쪽에서 입력했었던 문자 'pattern' 의 다음 앞 단어를 검색
6. vi를 빠져나가는 방법
:q! - 화일의 내용을 저장하지 않고 exit
:w - WRITE, vi를 빠져나가지 않으면서 내용을 저장
:wq - WRITE and QUIT, vi를 빠져나가면서 내용을 저장
ZZ - :wq의 명령과 같다.
7. 삽입 mode
i - INSERT, cursor 위치 부터 문자 삽입
I - INSERT, line의 맨 앞부터 문자 삽입
a - APPEND, cursor 다음 위치 부터 문자 삽입
A - APPEND, cursor 위치한 line의 끝부터 문자 삽입
o - OPEN line, 현재의 line 다음에 line 삽입
O - OPEN line, 현재의 line 앞에 line 삽입
r - REPLACE, 한 문자만을 대치 (does not require ESC)
R - REPLACE, ESC 키가 입력될때 까지 대치
cw - CHANGE word, cursor가 위치한 곳의 단어 끝까지 대치 (cnw - change n number of words)
C - CHANGE, cursor가 위치한 곳에서 line 끝까지 대치
u - UNDOES, 마지막 명령의 취소
U - UNDOES, line전체를 원 상태로 복구
Note : INSERT mode 를 만든는 모든 문자(i, a, o,r, c, s <대문자 포함>)를
사용하는 경우 insert mode에서 입력 한 내용을 취소하고자 하면,
ESC 를 누르고 undo를 수행하는 u를 입력하면 된다.
Note : ESC (escape key 는 삽입) insert를 중지 시키고 명령어 mode로 돌아가는 키이다.
8. Yanking : (Copying)
Y - YANKS (copies line을 사용자가 보이지 않는 buffer에 저장)
yy - YANKS (copies line을 사용자가 보이지 않는 buffer에 저장)
nY - YANKS n , n line을 사용자가 보이지 않는 buffer에 저장
9. Deleting
x - deletes, 문자 하나를 삭제 (also 'd sp')
dw - DELETES words, 문자 하나를 삭제
D - DELETES, cursor가 있는 곳에서 부터 line끝 까지 삭제
dd - DELETES lines, line하나를 삭제 하고 보이지 않는 buffer에 저장
ndd - DELETES n, n line을 삭제 하고 보이지 않는 buffer에 저장
(i.e., 10dd deletes 10 lines)
10. Putting
p - PUTS, cursor가 위치한 다음 line에 보이지 않는 buffer의 내용을 삽입
P - PUTS, cursor가 위치한 앞 line에 보이지 않는 buffer의 내용을 삽입
xp - cursor 가 위치한 문자와 다음 문자를 교환
11. Interactive edit : (search and replace)
/pattern - find, pattern이라는 문자를 검색
cw - change word, 단어를 대치 (cw. dw, r, s, etc.)
n - find, 앞에서 검색했던 'pattern'이라는 문자를 검색하는 반복 명령
N - find, 앞에서 검색했던 'pattern'이라는 문자를 역순으로 검색 하는 반복 명령
12. Global 명령
Global replacement :1,\$s/string1/string2/g
1 line부터 끝까지 string1 를 string2 로 대치
e.g., :1,\$s/sun/SUN/
Global delete :g/pattern/d
1 line부터 끝까지 pattern 을 제거
e.g., :g/###/d (to delete lines inserted by cc file.c | error-v)
13. Reading in files
:r file2 - cursor가 위치한 다음 line에 file2를 삽입
14. 여러 화일의 edit
:w - 다른 화일을 읽기전에 현재의 화일을 저장 (file1)
:e file2 - 두번째 file을 edit하기 위해 load (file2)
:w - 두번째 화일을 저장 (file2)
:e # - original file 을 수정하기 위해 load (file1)
example:w /* file1을 빠져 나가기전에 저장 */
:e file2 /* file2 load */
\x4Y /* buffer 'x'에 file2의 top 4 line을 저장 */
:e # /* file1 을 load (no changes) */
\"xP /* buffer 'x'에 저장 되어 있는 내용을 put */
15. Miscellancenous commands
:! cmd - editor안에서 shell command를 수행 하고자 할때
~ - (tilde or 'wavy') 대문자를 소문자로 소문자를 대문자로 교환
% - 한 line안에서 (,,{,},[,]를 검색)
mx - 문자 x에 현재 위치를 표시
d'x - 문자 x에 표시된 위치 부터 현재 cursor 위치 까지 삭제
^V - allows for insertion of control characters (e.g.,^L)
?string - scan (/ backward for 'pattern')
:n,m w file - n line에서 m line까지 내용을 file 이라는 이름으로 (e.g., 15,25 w file)
J - JOINS, cusor가 있는 line과 다음 line을 join
:set ai - editor 가 자동적으로 insert tabs을 삽입
:set list - special characters 를 보여줌 (i.e., non-printable characters)
:set nows - stop wraparound search
:set ts=n - set tab stops to be other than the default (8)
:set wm=n - set wrap margin (automatic carriage return insert at n)
}}}
{{{
V I 편집기
text파일을 편집하기 위한 editor는 line editor "ed"와 screen editor "vi"가 사용된다.
vi 편집은 대화식 편집기(Interactive Text Editor) 로서 기존의 편집기 ex에 시초를 둔 디스플레이 지향의 편집기이며 ed 편집기보다 훨씬 편리한 기능을 부여 받으며, 화면 전체의 데이터를 편집할 수 있기 때문에 커서를 상하좌우 마음대로 이동시킬 수 있어 매우 편리하다.
파일 명은 사용자가 임의로 정할 수 있으며 14자 이내의 영, 숫자 조합이면 가능하며 특수문자($,%,=,+,-)와 함께 사용하는 것을 배제한다.
시작
$ vi file_name
text입력
text를 입력하는 방법중 하나는 문자 "a"(append 화면에 표시안됨)를 입력하고 text를 입력하며, 각행을 분리할 때 키를 누른다.
text 보관 및 종료
명령어 모드(인 상태)에서 ":"을 입력한 후 w로 해당파일을 보관하고 q!로 작업을 종료한다.
커서 명령
h 왼쪽으로 커서 이동
j 아래로 커서 이동
k 위로 커서 이동
l 오른쪽으로 커서이동
w 한 단어 오른쪽으로 커서 이동
b 한 단어 왼쪽으로 커서 이동
Return 한 문자 왼쪽으로 커서 이동
Backspsce 한 문자 으로 커서 이동
Space Bar 화면의 맨 위로 이동
H 화면의 중간으로 이동
M 화면의 중간으로 이동
L 화면의 맨 아래로 이동
Ctrl+F 한 화면 앞으로 이동
Ctrl+D 반 화면 앞으로 이동
Ctrl+B 한 화면 뒤로 이동
Ctrl+U 반 화면 뒤로 이동
문자와 행 삽입
a 커서 오른쪽에 문자 삽입
A 커서 오른쪽, 행의 끝에 문자삽입
i 커서 왼쪽에 문자삽입
I 커서 왼쪽,행의 처음에 문자 삽입
o 커서 아래에 행 삽입
O 커서 위에 행 삽입
작업종료후 입력
텍스트 변경
cw 단어 변경
cc 행 변경
C 커서 오른쪽의 행 변경
s 커서가 위치한 문자열 대체
r 커서 위치 문자를 다른 문자로 대체
r-Return 행 분리
J 현재 행과 아래 행 결합
xp 커서 위치 문자와 오른쪽 문자교환
u 이전 명령 취소
U 행 변경 사항 취소
:u 이전의 최종행취소
텍스트 삭제
x 문자 삭제
dw 단어 삭제
dd 행 삭제
D 커서 오른쪽 행 삭제
:5,10 d 5-10번째 행 삭제
텍스트복사 및 이동 명 령 어
yy 행 yank 또는 복사
Y 행 yank 또는 복사
p yank되거나 복사된 행 현재행 아래 삽입
P yank되거나 복사된 행 현재행 위에 삽입
:1,2 co 3 1-2행을 3행 다음으로 복사
:4,5 m 6 4-5행을 6행 다음으로 이동
행번호 설정
:set nu 행번호 표시
:set nonu 행번호 숨기기
탐색 및 대체
/string/ string 탐색
?string? string 역 방향 탐색
n(N) string의 다음(이전) 계속 탐색
:s/str/rep 현재행의 str을 rep로 대체
:%s/str/rep/g 파일 전체 str을 rep로 대체
보관 및 종료
:w 변경사항 보관
:wp 변경사항 보관후 vi 복관
:q! 변경사항을 보관하지않고 종료
:wq! 변경사항 보관후 종료
vi 명령들
1. Cursor를 옮기는 여러가지 방법
2. 화면을 옮기는 여러가지 방법
3. 한 화면 안에서 cursor를 옮기는 방법
4. 한 line 안에서 cursor를 옮기는 방법
5. 검색
6. vi를 빠져나가는 방법
7. 삽입 mode
8. Yanking : (Copying)
9. Deleting
10. Putting
11. Interactive edit : (search and replace)
12. Global 명령
13. Reading in files
14. 여러 화일의 edit
15. Miscellancenous commands
1. Cursor를 옮기는 여러가지 방법
k(-)
||
h(bs) <------> l(sp)
||
j(+)
h,j,k 와 i 를 이용하영 간단히 키보를 누르면 cursor의 위치가 변경됩니다.
괄호에 있는 키를 선택하여도 됩니다.
bs : BackSpace
sp : Space bar
2. 화면을 옮기는 여러가지 방법
^f - (FORWARD 화면을 one page 앞으로 옮김)
^b - (BACKWARD 화면을 one page 뒤으로 옮김)
^d - (DOWN 화면을 반 page 앞으로 옮김)
^u - (UP 화면을 반 page 뒤으로 옮김)
3. 한 화면 안에서 cursor를 옮기는 방법
H - HOME, 한 화면의 top line으로 옮긴다.
M - MIDDLE, 한 화면의 중간으로 옮긴다.
L - LAST, 한 화면의 마지막 line으로옮긴다.
G - GOTO, 화일의 마지막 line으로 옮긴다.
nG - GOTO nth line the file (or :n)
^G - GIVES file status
4. 한 line 안에서 cursor를 옮기는 방법
w - WORD, 한단어 앞으로
b - BACKWARD, 한단어 뒤로
e - END, 현재 cursor가 위치한 맨 뒤로
o - zero, line의 맨 앞으로 (or ^)
$ - end, line의 맨뒤로
5. 검색
/pattern - scan (/ 'pattern'이라는글자를 현재 cursor가 위치한 곳의 다음 단어를 검색)
?pattern - scan (? 'pattern'이라는 글자를 현재 cursor가 위치한 곳의 앞 단어를 검색)
n - 앞쪽에서 입력했었던 문자 'pattern' 의 다음단어를 검색
N - 앞쪽에서 입력했었던 문자 'pattern' 의 다음 앞 단어를 검색
6. vi를 빠져나가는 방법
:q! - 화일의 내용을 저장하지 않고 exit
:w - WRITE, vi를 빠져나가지 않으면서 내용을 저장
:wq - WRITE and QUIT, vi를 빠져나가면서 내용을 저장
ZZ - :wq의 명령과 같다.
7. 삽입 mode
i - INSERT, cursor 위치 부터 문자 삽입
I - INSERT, line의 맨 앞부터 문자 삽입
a - APPEND, cursor 다음 위치 부터 문자 삽입
A - APPEND, cursor 위치한 line의 끝부터 문자 삽입
o - OPEN line, 현재의 line 다음에 line 삽입
O - OPEN line, 현재의 line 앞에 line 삽입
r - REPLACE, 한 문자만을 대치 (does not require ESC)
R - REPLACE, ESC 키가 입력될때 까지 대치
cw - CHANGE word, cursor가 위치한 곳의 단어 끝까지 대치 (cnw - change n number of words)
C - CHANGE, cursor가 위치한 곳에서 line 끝까지 대치
u - UNDOES, 마지막 명령의 취소
U - UNDOES, line전체를 원 상태로 복구
Note : INSERT mode 를 만든는 모든 문자(i, a, o,r, c, s <대문자 포함>)를
사용하는 경우 insert mode에서 입력 한 내용을 취소하고자 하면,
ESC 를 누르고 undo를 수행하는 u를 입력하면 된다.
Note : ESC (escape key 는 삽입) insert를 중지 시키고 명령어 mode로 돌아가는 키이다.
8. Yanking : (Copying)
Y - YANKS (copies line을 사용자가 보이지 않는 buffer에 저장)
yy - YANKS (copies line을 사용자가 보이지 않는 buffer에 저장)
nY - YANKS n , n line을 사용자가 보이지 않는 buffer에 저장
9. Deleting
x - deletes, 문자 하나를 삭제 (also 'd sp')
dw - DELETES words, 문자 하나를 삭제
D - DELETES, cursor가 있는 곳에서 부터 line끝 까지 삭제
dd - DELETES lines, line하나를 삭제 하고 보이지 않는 buffer에 저장
ndd - DELETES n, n line을 삭제 하고 보이지 않는 buffer에 저장
(i.e., 10dd deletes 10 lines)
10. Putting
p - PUTS, cursor가 위치한 다음 line에 보이지 않는 buffer의 내용을 삽입
P - PUTS, cursor가 위치한 앞 line에 보이지 않는 buffer의 내용을 삽입
xp - cursor 가 위치한 문자와 다음 문자를 교환
11. Interactive edit : (search and replace)
/pattern - find, pattern이라는 문자를 검색
cw - change word, 단어를 대치 (cw. dw, r, s, etc.)
n - find, 앞에서 검색했던 'pattern'이라는 문자를 검색하는 반복 명령
N - find, 앞에서 검색했던 'pattern'이라는 문자를 역순으로 검색 하는 반복 명령
12. Global 명령
Global replacement :1,\$s/string1/string2/g
1 line부터 끝까지 string1 를 string2 로 대치
e.g., :1,\$s/sun/SUN/
Global delete :g/pattern/d
1 line부터 끝까지 pattern 을 제거
e.g., :g/###/d (to delete lines inserted by cc file.c | error-v)
13. Reading in files
:r file2 - cursor가 위치한 다음 line에 file2를 삽입
14. 여러 화일의 edit
:w - 다른 화일을 읽기전에 현재의 화일을 저장 (file1)
:e file2 - 두번째 file을 edit하기 위해 load (file2)
:w - 두번째 화일을 저장 (file2)
:e # - original file 을 수정하기 위해 load (file1)
example:w /* file1을 빠져 나가기전에 저장 */
:e file2 /* file2 load */
\x4Y /* buffer 'x'에 file2의 top 4 line을 저장 */
:e # /* file1 을 load (no changes) */
\"xP /* buffer 'x'에 저장 되어 있는 내용을 put */
15. Miscellancenous commands
:! cmd - editor안에서 shell command를 수행 하고자 할때
~ - (tilde or 'wavy') 대문자를 소문자로 소문자를 대문자로 교환
% - 한 line안에서 (,,{,},[,]를 검색)
mx - 문자 x에 현재 위치를 표시
d'x - 문자 x에 표시된 위치 부터 현재 cursor 위치 까지 삭제
^V - allows for insertion of control characters (e.g.,^L)
?string - scan (/ backward for 'pattern')
:n,m w file - n line에서 m line까지 내용을 file 이라는 이름으로 (e.g., 15,25 w file)
J - JOINS, cusor가 있는 line과 다음 line을 join
:set ai - editor 가 자동적으로 insert tabs을 삽입
:set list - special characters 를 보여줌 (i.e., non-printable characters)
:set nows - stop wraparound search
:set ts=n - set tab stops to be other than the default (8)
:set wm=n - set wrap margin (automatic carriage return insert at n)
}}}
"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기, 각종 광고, 영업, 판매, 제안서, 전단지 반응율 3배×10배 이상 높이는 마법의 8단계 공식" |
☞자세히보기 |
|
|