a | 커서 위치의 다음 칸부터부터 끼워넣기(append) |
A | 커서가 있는 줄의 끝에서부터 끼워넣기 |
i | 커서 위치부터 끼워넣기(insert) |
I | 커서가 있는 줄의 맨 앞에서부터 끼워넣기 |
o | 커서 바로 아래에 줄을 만들고 끼워넣기(open line) |
O | 커서 바로 위에 줄을 만들고 끼워넣기 |
2. 커서 이동하기
h | 한칸 왼쪽으로 이동 | l | 한칸 오른쪽으로 이동 |
j | 한줄 아래로 이동 | k | 한줄 위로 이동 |
w | 다음 단어의 첫 글자로 이동 | W | 다음 단어의 첫 글자로 이동 |
b | 이전 단어의 첫 글자로 이동 | B | 이전 단어의 첫 글자로 이동 |
e | 단어의 마지막 글자로 이동 | E | 단어의 마지막 글자로 이동 |
^ | 그 줄의 첫 글자로 이동 | $ | 그 줄의 마지막 글자로 이동 |
0 | 그 줄의 처음으로 이동 | <CR> | 다음 줄의 첫 글자로 이동 |
+ | 다음 줄의 첫 글자로 이동 | – | 윗줄의 첫 글자로 이동 |
( | 이전 문장의 첫 글자로 이동 | ) | 다음 문장의 첫 글자로 이동 |
{ | 이전 문단으로 이동 | } | 다음 문단으로 이동 |
3. 글 수정하기
r | 커서 위치의 한 글자 교체 |
R | 커서 위치부터 <ESC>를 누를때까지 다른 글자로 교체 |
s, cl | 커서 위치의 글자를 한개를 여러 글자로 교체 |
ch | 커서 바로 앞의 글자를 한개를 여러 글자로 교체 |
cw | 커서 위치의 한 단어를 교체 |
c0 | 커서 위치부터 줄의 처음까지 교체 |
C, c$ | 커서 위치부터 줄의 끝까지 교체 |
cc | 커서가 있는 줄을 교체 |
cj | 커서가 있는 줄과 그 다음 줄을 교체 |
ck | 커서가 있는 줄과 그 앞줄을 교체 |
4. 글 삭제하기
x, dl | 커서 위치의 글자 삭제 |
X, dh | 커서 바로 앞의 글자 삭제 |
dw | 한 단어를 삭제 |
d0 | 커서 위치부터 줄의 처음까지 삭제 |
D, d$ | 커서 위치부터 줄의 끝까지 삭제 |
dd | 커서가 있는 줄을 삭제 |
dj | 커서가 있는 줄과 그 다음 줄을 삭제 |
dk | 커서가 있는 줄과 그 앞줄을 삭제 |
5. 복사 & 붙이기
yw | 커서 위치부터 단어의 끝까지 복사 |
y0 | 커서 위치부터 줄의 처음까지 복사 |
y$ | 커서 위치부터 줄의 끝까지 복사 |
yy | 커서가 있는 줄을 복사 |
yj | 커서가 있는 줄과 그 다음 줄을 복사 |
yk | 커서가 있는 줄과 그 앞줄을 복사 |
p | 커서의 다음 위치에 붙여넣기 |
P | 커서가 있는 위치에 붙여넣기 |
6. 기타
u | 작업 취소(undo) |
U | 그 줄에 행해진 작업 모두 취소 |
Ctrl+r | 작업 재실행(redo) |
. | 조금 전에 했던 명령을 반복 |
J | 현재 줄과 아래 줄을 연결 |
~ | 대문자를 소문자로, 소문자를 대문자로 바꿈 |
% | 괄호의 반대쪽 짝으로 이동 |
Ctrl+l | 현재 화면을 지우고 다시 그림 |
Ctrl+g | 파일에 관한 정보를 표시 |
7. 화면 이동하기
H | 커서를 화면의 맨 위로 | z<CR> | 현재 줄을 화면의 맨 위로 |
M | 커서를 화면의 중앙으로 | z. | 현재 줄을 화면의 중앙으로 |
L | 커서를 화면의 맨 아래로 | z- | 현재 줄을 화면의 맨 아래로 |
[n]H | 커서를 위에서 [n]번째 줄로 | [n]L | 커서를 아래에서 [n]번째 줄로 |
Ctrl+u | 반 화면 위로 스크롤 | Ctrl+b | 한 화면 위로 스크롤 |
Ctrl+d | 반 화면 아래로 스크롤 | Ctrl+f | 한 화면 아래로 스크롤 |
gg, 1G | 문서의 맨 처음 줄로 | G | 문서의 맨 마지막 줄로 |
[n]G | [n]번째 줄로 이동 |
8. 마킹하기
ma | 현재 위치를 ‘a’로 마크 | ||
‘a | 마크된 ‘a’로 이동 | ‘a | 마크된 ‘a’가 있는 줄의 처음으로 이동 |
‘ | 직전의 커서 위치로 이동 | ” | 직전에 커서가 위치하던 줄의 처음으로 |
9. 패턴 검색 및 교체하기
/[pattern]<CR> | 현재 위치에서부터 아래 방향으로 패턴 검색 |
?[pattern]<CR> | 현재 위치에서부터 위쪽 방향으로 패턴 검색 |
n | 검색하던 방향으로 계속 패턴 검색 |
N | 검색하던 반대 방향으로 계속 패턴 검색 |
10. 특정 패턴을 다른 패턴으로 바꾸기
:s/old/new<CR> | 현재 줄의 처음 old를 new로 교체 |
:s/old/new/g<CR> | 현재 줄의 모든 old를 new로 교체 |
:1,20s/old/new/g<CR> | 1부터 20번째 줄까지 모든 old를 new로 교체 |
:-2,+4s/old/new/g<CR> | 커서 2줄 위부터 4줄 아래까지 old를 new로 교체 |
:%s/old/new/g<CR> | 문서 전체에서 old를 new로 교체 |
:%s/old/new/gc<CR> | 문서 전체에서 old를 new로 확인하며 교체 |
:g/pattern/s/old/new/g<CR> | pattern이 있는 모든 줄의 old를 new로 교체 |
:g/pattern/s//new/g<CR> | :%s/old/new/g<CR>과 동일 |
11. 끝줄 모드 사용하기
:q<CR> | vi를 종료함 |
:w<CR> | 편집중인 문서를 저장 |
:w [file]<CR> | 편집중인 문서를 [file]로 저장 |
:w >> [file]<CR> | 편집중인 문서를 [file]에 덧붙여서 저장 |
:e [file]<CR> | [file]을 불러옴 |
:e#<CR> | 이전에 편집하던 파일을 불러옴 |
:e%<CR> | 현재 파일을 다시 불러옴, 즉 저장하지 않은 작업 취소 |
:r [file]<CR> | [file]을 커서위치에 끼워넣기 |
:set [option]<CR> | [option]을 켜기 |
:set [nooption]<CR> | [option]을 끄기 |
:![command]<CR> | [command] 실행 |
:r ![command]<CR> | [command] 실행 결과를 끼워넣기 |