테스트 사이트 - 개발 중인 베타 버전입니다

vi 정리 입니다.

· 9년 전 · 520 · 3

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를 시작하여 지정한 [파일]을 되살린다

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 3개

사랑합니다.!!!!!!!!!!!!!!!!!
9년 전
매번 보는거지만 쓰는것만 쓰네요 ㅠㅠ
저도 쓰는 것만 거의 쓰네요.
U(Undo)랑 Ctrl + R(Redo) 이건 없네요.

게시글 목록

번호 제목
20215
20214
20213
20212
28362
20211
20210
20209
20208
20207
20206
20205
20204
20203
20202
20201
20200
20199
JavaScript 계산기
20198
20197
20196
20195
20194
20193
20192
20191
20190
20189
20188
28361
20187
20186
20185
20184
20183
20182
20181
20180
20179
20177
8183
31027
8181
20176
20175
20174
20173
20172
20171
20170
20169
20168
20156
20154
20153
20152
8177
20151
20149
20148
20147
20146
20145
20144
20143
20142
20141
20140
20139
20137
20135
20134
20133
20129
20128
20126
8172
20123
20122
20121
20117
20116
20115
20114
20113
20112
20111
20110
20109
20108
20107
20106
20104
20103
20102
20101
31024
20100
20099
20098