vi 대략 정리 해 봅니다(어떤분 프로그램어 평가의기준이 vi라고 해서) 정보
PHP vi 대략 정리 해 봅니다(어떤분 프로그램어 평가의기준이 vi라고 해서)
본문
출처 ?? ㅎ
1. vi 시작하기
vi : vi를 시작한다.
vi [파일] : vi를 시작하여 지정한 [파일]이 존재하면 그 파일을 열고, 존재하지 않으면 지정한 파일 이름으로 새로운 파일을 만든다.
vi -R [파일] : 지정한 파일을 읽기 전용으로 불러들인다.
2. vi 종료하기
:q : 아무런 글을 입력하지 않았을 때, vi를 종료한다. 만약 글을 입력하였다면 종료되지 않는다.
:wq : 작성한 글을 저장하고 vi를 종료한다.
:q! : 작성한 글을 저장하지 않고 vi를 종료한다.
※ 종료하기를 포함한 앞으로 나오는 모든 vi 명령어들은 특별한 언급이 없는 이상, 위 그림에서 '명령대기상태'를 기준으로 입력해야 하는 명령어를 의미한다.
3. 저장하기
:w : 작성한 글을 저장한다.
:w [파일] : 지정한 파일로 작성한 글을 저장한다.
:w >> [파일] : 지정한 파일의 뒷부분에 작성한 글을 덧붙인다.
:w! : 읽기 전용으로 열었을 경우에 강제로 저장한다.
:w %.new : 현재 파일 이름에 .new를 붙여서 새로운 파일로 저장한다. (.new 자리에 다른 문자열이 올 수 있다.)
:50,$ w [파일] : 50줄부터 끝줄까지 [파일] 이름으로 저장한다.
:.,100 w [파일] : 현재 줄에서부터 100줄까지 [파일] 이름으로 저장한다.
:1,10 w [파일] : 1줄부터 10줄까지 파일 이름으로 저장한다.
:50,$ w >> [파일] : [숫자]번째 줄부터 끝줄까지 [파일]의 뒷부분에 저장한다.
=> [숫자 or . or $], [숫자 or . or $] w [파일] : [숫자]는 [숫자]번째 줄을, '.'은 '현재줄', '$'는 '끝줄'을 의미한다. 첫번째가 의미하는 부분부터 두번째가 의미하는 부분까지 [파일] 이름으로 저장한다.
4. 커서이동
vi를 처음 사용하는 경우에 당황해하는 부분 중 하나가 커서를 마음대로 움직이지 못한다는 것이다. 특정 설정을 해주지 않으면 윈도우에서처럼 마우스로 찍는 곳에 커서가 위치하지 않기 때문이다. 여기서는 기본 설정에서의 vi 커서 이동을 정리하였다. 커서 이동은 명령모드에서 가능하다.
h : 커서를 한 칸 왼쪽으로 이동한다 (좌).
j : 커서를 한 줄 아래로 이동한다 (하).
k : 커서를 한 줄 위로 이동한다 (상).
l, Space : 커서를 한 칸 오른쪽으로 이동한다 (우).
Backspace : 커서를 한 칸 왼쪽으로 이동한다.
- : 커서를 윗줄의 처음으로 이동한다.
+ : 커서를 다음 줄의 처음으로 이동한다.
0 : 커서를 현재 줄의 맨 앞으로 이동한다.
$ : 커서를 현재 줄의 맨 뒤로 이동한다.
^ : 커서를 현재 줄의 첫 글자로 이동한다 (공백이나 탭은 무시한다).
w, W : 커서를 다음 단어의 첫 글자로 이동한다.
e, E : 커서를 다음 단어의 끝 글자로 이동한다.
b, B : 커서를 이전 단어의 첫 글자로 이동한다.
( : 커서를 앞의 문장 처음으로 이동한다.
) : 커서를 뒤 문장 처음으로 이동한다.
{ : 커서를 앞 문단의 처음으로 이동한다.
} : 커서를 뒷 문단의 처음으로 이동한다.
H : 커서를 화면 맨 위로 이동한다.
M : 커서를 화면 중간으로 이동한다.
L : 커서를 화면 맨 아래로 이동한다.
<Ctrl> + F : 커서를 한 화면 아래로 이동한다.
<Ctrl> + B : 커서를 한 화면 위로 이동한다.
<Ctrl> + D : 커서를 반 화면 아래로 이동한다.
<Ctrl> + U : 커서를 반 화면 위로 이동한다.
[N] + <Ctrl> + F : 커서를 한 [N]화면 아래로 이동한다. (N은 양의 정수)
[N] + <Ctrl> + B : 커서를 한 [N]화면 위로 이동한다.
[N] + <Ctrl> + D : 커서를 [N] 줄 아래로 이동한다.
[N] + <Ctrl> + U : 커서를 [N] 줄 위로 이동한다.
5. 입력하기
i : 현재 커서 위치에서 글을 입력한다.
a : 현재 커서 다음부터 글을 입력한다.
o : 현재 커서가 있는 아래 줄부터 글을 입력한다.
S : 현재 커서가 있는 위치의 한 글자를 삭제하고 거기에서부터 글을 입력한다.
I : 현재 커서가 있는 줄의 맨 앞에서부터 글을 입력한다.
A : 현재 커서가 있는 줄의 맨 뒤에서부터 글을 입력한다.
O : 현재 커서가 있는 줄의 맨 위에서부터 글을 입력한다.
R : 현재 커서가 있는 곳에서부터 겹쳐쓰기(덮어쓰기)로 입력한다.
6. 삭제하기
vi에서는 윈도우에서처럼 BackSpace나 Delete 키만으로 삭제를 모두 해결하지 않는다.
x : 커서가 위치한 곳의 문자를 삭제한다.
X : 커서가 위치한 곳에서 왼쪽 문자를 삭제한다.
D : 커서가 위치한 곳에서 오른쪽 끝까지 삭제한다.
dd : 커서가 위치한 줄 전체를 삭제한다.
dG : 커서가 위치한 곳에서부터 파일의 끝까지 삭제한다.
d1G : 커서가 위치한 곳에서부터 파일의 앞까지 삭제한다.
:[N]d : N번째 줄을 삭제한다. (N은 양의 정수)
:[N], [M]d : N번째 줄부터 M번째 줄까지 삭제한다. (M은 N보다 큰 양의 정수)
[N] + dd : 커서가 위치한 곳에서부터 N 줄을 삭제한다.
7. 붙이기
p : 마지막으로 지워진 내용을 커서가 위치한 곳 뒤, 아래에 삽입한다.
P : 마지막으로 지워진 내용을 커서가 위치한 곳 앞, 위에 삽입한다.
8. 내용 고치기
:[N]co[M] : [N]줄을 [M]줄 밑에 복사해서 붙인다.
:[N], [M]col : [N]줄부터 [M]줄까지 한 줄 밑에 복사해서 붙인다.
[N]yy, [N]Y : 커서 위치에서 [N]줄만큼을 복사한다.
[N]yw : 커서 위치에서 [N]단어만큼을 복사한다.
:[A]m[B] : [A]줄을 [B]줄 밑으로 이동한다. (A, B는 양의 정수)
:[A], [B]m[C] : [A]줄부터 [B]줄까지 [C]줄 밑으로 이동한다.
:r : 마지막으로 저장되었던 파일의 전체내용이 파일 아래에 덧붙여진다.
9. 치환하기
:s/[원래내용]/[고칠내용] : 커서가 위치한 줄에서 [원래내용]을 [고칠내용]으로 치환한다.
:[N]s/[원래내용]/[고칠내용] : 지정한 [N]줄에서 [원래내용]을 [고칠내용]으로 치환한다.
:[N],[M]s/[원래내용]/[고칠내용] : 지정한 [N]줄에서 [M]줄까지의 범위 내에서 [원래내용]을 [고칠내용]으로 치환한다.
:%s/[원래내용]/[고칠내용] : 파일 전체에서 [원래내용]을 [고칠내용]으로 치환한다.
:C : 커서 위치에서 행의 끝까지를 다른 문자열로 변경한다.
:cc : 커서 행을 다른 문자열로 변경한다.
:R : 커서 위치에서 ESC를 입력한 곳까지 덮어쓴다.
10. 검색하기
검색명령은 파일의 끝에 도달하면 다시 처음부터 시작한다.
/[단어] : 현재 커서 위치에서 아래로 지정한 [단어]를 찾는다.
?[단어] : 현재 커서 위치에서 위로 지정한 [단어]를 찾는다.
/ : 전에 검색했던 단어를 아래로 반복해서 찾는다.
? : 전에 검색했던 단어를 위로 반복해서 찾는다.
n : /나 ?를 같은 방향으로 반복한다.
N : /나 ?를 반대 방향으로 반복한다.
11. 약어 사용하기
긴 단어나 문장을 짧은 단어로 쓸 수 있다.
:ab [short] [long] : [short]만 쓰면 자동으로 [long]의 내용으로 바뀐다. [long]은 단어는 물론 문장이 될 수도 있다.
:ab : 현재까지 지정된 약어 목록을 보여준다.
:una [short] : [short]를 약어에서 해제한다.
12. 화면보기
^l : 화면을 다시 뿌려준다.
:set number , se nu : 파일의 각 라인별로 번호를 붙여준다.
:set nonumber , se nonu : 파일의 각 라인별 번호를 삭제한다.
:set autoindent , se ai : 자동으로 들여쓰기를 한다.
:set noautoindent , se noai : 자동 들여쓰기를 취소한다.
:set list : 탭은 ^l로, 문장의 끝은 $로 표시한다.
:set nolist : list값을 취소한다.
:set tabstop=n ,se ts=n : 탭의 크기를 n으로 지정한다. 기본은 8이다.
13. 줄번호
[N]G, :[N] : [N]번째 줄로 바로 간다. (ex. 1G : 1번째 줄로 간다)
G : 마지막 줄로 간다.
:map [q] G : [q]가 G를 실행한 결과와 같도록 매크로를 정의한다.
14. 파일 바꾸기
:e [파일] : 현재 작성하고 있던 파일에서 지정한 파일로 바뀌어진다. 단, 작성하고 있던 파일이 저장되어 있지 않으면 바뀌지 않는다.
:e! [파일] : 현재 작성하고 있던 파일이 저장이 되지 않았더라도 지정한 파일로 바뀐다.
15. 데이터 읽기
:[N]r [파일] : [N]번째 줄에 지정한 파일의 내용이 삽입된다.
:r [파일] : 현재 커서가 위치한 곳 다음 줄에 지정한 파일의 내용이 삽입된다.
:[N]r ![명령어] : 명령어의 결과가 [N]번째 줄 다음에 삽입된다.
:r ![명령어] : 명령어의 결과가 현재 커서가 위치한 다음 줄에 삽입된다.
16. 정규 표현식을 위한 특수 기호
. : 새로운 줄을 제외한 모든 단일 문자와 대응한다.
* : 0 또는 그 이상의 선행 문자와 대응한다.
^ : 줄의 시작과 대응한다.
$ : 줄의 끝과 대응한다.
/< : 단어의 시작과 대응한다.
/> : 단어의 끝과 대응한다.
[] : 묶여진 문자 중의 하나와 대응한다.
[^ ] : 묶여진 문자를 제외한 아무 것이나 대응한다.
\ : 이어지는 기호를 문자 그대로 해석한다. (ex. \\ => \ 기호를 의미)
17. 셸 명령어 실행하기
:![명령어] : vi를 중단하고 지정한 셀 명령을 실행한다.
:!! : vi를 중단하고 이전의 셀 명령을 실행한다.
:sh : vi를 중단하고 셸을 실행한다.
:!csh : vi를 중단하고 새로운 C셸을 실행한다.
18. 데이터를 처리하기 위한 셸 명령어
[N]!![명령어] : [N]번 줄에서 명령어를 실행한다.
![M] [명령어] : 커서가 위치한 곳에서부터 [M]까지 명령어를 실행한다.
![M] fmt : 커서가 위치한 곳에서부터 [M]까지 줄들을 형식에 맞춘다.
19. 시스템이 죽었을 경우에 파일 살리기
vi -r : 되살릴 수 있는 모든 파일 이름을 보여준다.
vi -r [파일] : vi를 시작하여 지정한 [파일]을 되살린다.<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:32:05 Linux에서 이동 됨]</div>
1. vi 시작하기
vi : vi를 시작한다.
vi [파일] : vi를 시작하여 지정한 [파일]이 존재하면 그 파일을 열고, 존재하지 않으면 지정한 파일 이름으로 새로운 파일을 만든다.
vi -R [파일] : 지정한 파일을 읽기 전용으로 불러들인다.
2. vi 종료하기
:q : 아무런 글을 입력하지 않았을 때, vi를 종료한다. 만약 글을 입력하였다면 종료되지 않는다.
:wq : 작성한 글을 저장하고 vi를 종료한다.
:q! : 작성한 글을 저장하지 않고 vi를 종료한다.
※ 종료하기를 포함한 앞으로 나오는 모든 vi 명령어들은 특별한 언급이 없는 이상, 위 그림에서 '명령대기상태'를 기준으로 입력해야 하는 명령어를 의미한다.
3. 저장하기
:w : 작성한 글을 저장한다.
:w [파일] : 지정한 파일로 작성한 글을 저장한다.
:w >> [파일] : 지정한 파일의 뒷부분에 작성한 글을 덧붙인다.
:w! : 읽기 전용으로 열었을 경우에 강제로 저장한다.
:w %.new : 현재 파일 이름에 .new를 붙여서 새로운 파일로 저장한다. (.new 자리에 다른 문자열이 올 수 있다.)
:50,$ w [파일] : 50줄부터 끝줄까지 [파일] 이름으로 저장한다.
:.,100 w [파일] : 현재 줄에서부터 100줄까지 [파일] 이름으로 저장한다.
:1,10 w [파일] : 1줄부터 10줄까지 파일 이름으로 저장한다.
:50,$ w >> [파일] : [숫자]번째 줄부터 끝줄까지 [파일]의 뒷부분에 저장한다.
=> [숫자 or . or $], [숫자 or . or $] w [파일] : [숫자]는 [숫자]번째 줄을, '.'은 '현재줄', '$'는 '끝줄'을 의미한다. 첫번째가 의미하는 부분부터 두번째가 의미하는 부분까지 [파일] 이름으로 저장한다.
4. 커서이동
vi를 처음 사용하는 경우에 당황해하는 부분 중 하나가 커서를 마음대로 움직이지 못한다는 것이다. 특정 설정을 해주지 않으면 윈도우에서처럼 마우스로 찍는 곳에 커서가 위치하지 않기 때문이다. 여기서는 기본 설정에서의 vi 커서 이동을 정리하였다. 커서 이동은 명령모드에서 가능하다.
h : 커서를 한 칸 왼쪽으로 이동한다 (좌).
j : 커서를 한 줄 아래로 이동한다 (하).
k : 커서를 한 줄 위로 이동한다 (상).
l, Space : 커서를 한 칸 오른쪽으로 이동한다 (우).
Backspace : 커서를 한 칸 왼쪽으로 이동한다.
- : 커서를 윗줄의 처음으로 이동한다.
+ : 커서를 다음 줄의 처음으로 이동한다.
0 : 커서를 현재 줄의 맨 앞으로 이동한다.
$ : 커서를 현재 줄의 맨 뒤로 이동한다.
^ : 커서를 현재 줄의 첫 글자로 이동한다 (공백이나 탭은 무시한다).
w, W : 커서를 다음 단어의 첫 글자로 이동한다.
e, E : 커서를 다음 단어의 끝 글자로 이동한다.
b, B : 커서를 이전 단어의 첫 글자로 이동한다.
( : 커서를 앞의 문장 처음으로 이동한다.
) : 커서를 뒤 문장 처음으로 이동한다.
{ : 커서를 앞 문단의 처음으로 이동한다.
} : 커서를 뒷 문단의 처음으로 이동한다.
H : 커서를 화면 맨 위로 이동한다.
M : 커서를 화면 중간으로 이동한다.
L : 커서를 화면 맨 아래로 이동한다.
<Ctrl> + F : 커서를 한 화면 아래로 이동한다.
<Ctrl> + B : 커서를 한 화면 위로 이동한다.
<Ctrl> + D : 커서를 반 화면 아래로 이동한다.
<Ctrl> + U : 커서를 반 화면 위로 이동한다.
[N] + <Ctrl> + F : 커서를 한 [N]화면 아래로 이동한다. (N은 양의 정수)
[N] + <Ctrl> + B : 커서를 한 [N]화면 위로 이동한다.
[N] + <Ctrl> + D : 커서를 [N] 줄 아래로 이동한다.
[N] + <Ctrl> + U : 커서를 [N] 줄 위로 이동한다.
5. 입력하기
i : 현재 커서 위치에서 글을 입력한다.
a : 현재 커서 다음부터 글을 입력한다.
o : 현재 커서가 있는 아래 줄부터 글을 입력한다.
S : 현재 커서가 있는 위치의 한 글자를 삭제하고 거기에서부터 글을 입력한다.
I : 현재 커서가 있는 줄의 맨 앞에서부터 글을 입력한다.
A : 현재 커서가 있는 줄의 맨 뒤에서부터 글을 입력한다.
O : 현재 커서가 있는 줄의 맨 위에서부터 글을 입력한다.
R : 현재 커서가 있는 곳에서부터 겹쳐쓰기(덮어쓰기)로 입력한다.
6. 삭제하기
vi에서는 윈도우에서처럼 BackSpace나 Delete 키만으로 삭제를 모두 해결하지 않는다.
x : 커서가 위치한 곳의 문자를 삭제한다.
X : 커서가 위치한 곳에서 왼쪽 문자를 삭제한다.
D : 커서가 위치한 곳에서 오른쪽 끝까지 삭제한다.
dd : 커서가 위치한 줄 전체를 삭제한다.
dG : 커서가 위치한 곳에서부터 파일의 끝까지 삭제한다.
d1G : 커서가 위치한 곳에서부터 파일의 앞까지 삭제한다.
:[N]d : N번째 줄을 삭제한다. (N은 양의 정수)
:[N], [M]d : N번째 줄부터 M번째 줄까지 삭제한다. (M은 N보다 큰 양의 정수)
[N] + dd : 커서가 위치한 곳에서부터 N 줄을 삭제한다.
7. 붙이기
p : 마지막으로 지워진 내용을 커서가 위치한 곳 뒤, 아래에 삽입한다.
P : 마지막으로 지워진 내용을 커서가 위치한 곳 앞, 위에 삽입한다.
8. 내용 고치기
:[N]co[M] : [N]줄을 [M]줄 밑에 복사해서 붙인다.
:[N], [M]col : [N]줄부터 [M]줄까지 한 줄 밑에 복사해서 붙인다.
[N]yy, [N]Y : 커서 위치에서 [N]줄만큼을 복사한다.
[N]yw : 커서 위치에서 [N]단어만큼을 복사한다.
:[A]m[B] : [A]줄을 [B]줄 밑으로 이동한다. (A, B는 양의 정수)
:[A], [B]m[C] : [A]줄부터 [B]줄까지 [C]줄 밑으로 이동한다.
:r : 마지막으로 저장되었던 파일의 전체내용이 파일 아래에 덧붙여진다.
9. 치환하기
:s/[원래내용]/[고칠내용] : 커서가 위치한 줄에서 [원래내용]을 [고칠내용]으로 치환한다.
:[N]s/[원래내용]/[고칠내용] : 지정한 [N]줄에서 [원래내용]을 [고칠내용]으로 치환한다.
:[N],[M]s/[원래내용]/[고칠내용] : 지정한 [N]줄에서 [M]줄까지의 범위 내에서 [원래내용]을 [고칠내용]으로 치환한다.
:%s/[원래내용]/[고칠내용] : 파일 전체에서 [원래내용]을 [고칠내용]으로 치환한다.
:C : 커서 위치에서 행의 끝까지를 다른 문자열로 변경한다.
:cc : 커서 행을 다른 문자열로 변경한다.
:R : 커서 위치에서 ESC를 입력한 곳까지 덮어쓴다.
10. 검색하기
검색명령은 파일의 끝에 도달하면 다시 처음부터 시작한다.
/[단어] : 현재 커서 위치에서 아래로 지정한 [단어]를 찾는다.
?[단어] : 현재 커서 위치에서 위로 지정한 [단어]를 찾는다.
/ : 전에 검색했던 단어를 아래로 반복해서 찾는다.
? : 전에 검색했던 단어를 위로 반복해서 찾는다.
n : /나 ?를 같은 방향으로 반복한다.
N : /나 ?를 반대 방향으로 반복한다.
11. 약어 사용하기
긴 단어나 문장을 짧은 단어로 쓸 수 있다.
:ab [short] [long] : [short]만 쓰면 자동으로 [long]의 내용으로 바뀐다. [long]은 단어는 물론 문장이 될 수도 있다.
:ab : 현재까지 지정된 약어 목록을 보여준다.
:una [short] : [short]를 약어에서 해제한다.
12. 화면보기
^l : 화면을 다시 뿌려준다.
:set number , se nu : 파일의 각 라인별로 번호를 붙여준다.
:set nonumber , se nonu : 파일의 각 라인별 번호를 삭제한다.
:set autoindent , se ai : 자동으로 들여쓰기를 한다.
:set noautoindent , se noai : 자동 들여쓰기를 취소한다.
:set list : 탭은 ^l로, 문장의 끝은 $로 표시한다.
:set nolist : list값을 취소한다.
:set tabstop=n ,se ts=n : 탭의 크기를 n으로 지정한다. 기본은 8이다.
13. 줄번호
[N]G, :[N] : [N]번째 줄로 바로 간다. (ex. 1G : 1번째 줄로 간다)
G : 마지막 줄로 간다.
:map [q] G : [q]가 G를 실행한 결과와 같도록 매크로를 정의한다.
14. 파일 바꾸기
:e [파일] : 현재 작성하고 있던 파일에서 지정한 파일로 바뀌어진다. 단, 작성하고 있던 파일이 저장되어 있지 않으면 바뀌지 않는다.
:e! [파일] : 현재 작성하고 있던 파일이 저장이 되지 않았더라도 지정한 파일로 바뀐다.
15. 데이터 읽기
:[N]r [파일] : [N]번째 줄에 지정한 파일의 내용이 삽입된다.
:r [파일] : 현재 커서가 위치한 곳 다음 줄에 지정한 파일의 내용이 삽입된다.
:[N]r ![명령어] : 명령어의 결과가 [N]번째 줄 다음에 삽입된다.
:r ![명령어] : 명령어의 결과가 현재 커서가 위치한 다음 줄에 삽입된다.
16. 정규 표현식을 위한 특수 기호
. : 새로운 줄을 제외한 모든 단일 문자와 대응한다.
* : 0 또는 그 이상의 선행 문자와 대응한다.
^ : 줄의 시작과 대응한다.
$ : 줄의 끝과 대응한다.
/< : 단어의 시작과 대응한다.
/> : 단어의 끝과 대응한다.
[] : 묶여진 문자 중의 하나와 대응한다.
[^ ] : 묶여진 문자를 제외한 아무 것이나 대응한다.
\ : 이어지는 기호를 문자 그대로 해석한다. (ex. \\ => \ 기호를 의미)
17. 셸 명령어 실행하기
:![명령어] : vi를 중단하고 지정한 셀 명령을 실행한다.
:!! : vi를 중단하고 이전의 셀 명령을 실행한다.
:sh : vi를 중단하고 셸을 실행한다.
:!csh : vi를 중단하고 새로운 C셸을 실행한다.
18. 데이터를 처리하기 위한 셸 명령어
[N]!![명령어] : [N]번 줄에서 명령어를 실행한다.
![M] [명령어] : 커서가 위치한 곳에서부터 [M]까지 명령어를 실행한다.
![M] fmt : 커서가 위치한 곳에서부터 [M]까지 줄들을 형식에 맞춘다.
19. 시스템이 죽었을 경우에 파일 살리기
vi -r : 되살릴 수 있는 모든 파일 이름을 보여준다.
vi -r [파일] : vi를 시작하여 지정한 [파일]을 되살린다.<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:32:05 Linux에서 이동 됨]</div>
추천
0
0
댓글 6개

와 최고...스크랩..
자료 감사합니다.
윈도우버전 다운로드 받으셔서 설치하시고 사용해보셔도 좋습니다.
http://www.vim.org/download.php
http://www.vim.org/download.php

대략이 아닌데요ㅠㅠ

보고있찌만 ;;; 맨날 쓰는거만 쓰니 ;;
자료 감사합니다.