vi 명령의시작
vi |
vi편집기를 호출한다. |
vi filename |
기존에 있는 파일이면 그 파일을 열고 없는 파일이면 새로 만든다. |
vi + 10filename |
지정화일의 10번째 행부터 화일열기 |
vi +/"school" filename |
지정화일내의 school이란 단어가 처음나오는 시점부터 열기 |
vi -r filename |
손상된 파일을 복구 |
view filename |
수정없이 읽기전용으로 열기 |
vi편집기에는 명령어 모드(command mode)와 편집모드(edit mode)가 있다.
다음에 설명하는 모든 명령어는 vi편집기의 편집명령어이며, 이 명령을 주고(명령어모드상태) 난 다음에 파일을 편집(편집모드)할 수가 있습니다.
명령어 모드에서는 글쇠그 자체의 의미가 아니라 명령의 의미를 지니며, 편집모드에서는 키보드 글쇠 그자체의 의미를 지닙니다.
편집모드에서 명령어모드로 이동할 때는 Esc키를 눌러서 빠져 나옵니다.
커서의 이동
커서를 이동시킬 때는 아래의 글쇠를 이용하며, 가급적이면 화살표키는 사용하지 않는 것이 좋습니다.
h |
왼쪽으로 이동 |
j |
아래로 이동 |
k |
위로 이동 |
l |
오른쪽으로 이동 |
w |
한단어 오른쪽으로이동 |
b |
한단어 왼쪽으로 이동 |
Return |
한행아래로 이동 |
Backspace |
한문자 왼쪽으로 이동 |
Spacebar |
한문자 오른쪽으로 이동 |
H |
화면의 맨위로 이동 |
M |
화면의 중간으로 이동 |
L |
화면의 맨 아래로 이동 |
^F |
한화면 앞으로 이동 |
^D |
반화면 앞으로 이동 |
^B |
한화면 뒤로 이동 |
^U |
반화면 뒤로 이동 |
삽입명령어
a |
커서 오른쪽에 문자삽입 |
A |
커서 오른쪽, 행의끝에 문자삽입 |
i |
커서 왼쪽에 문자삽입 |
I |
커서왼쪽, 행의 처음에 문자삽입 |
o |
커서 아래에 행 삽입 |
O |
커서 위에 행 삽입 |
<Esc> |
작업완료후 반드시 입력 |
텍스트 변경
cw |
단어 변경 |
cc |
행 변경 |
C |
커서 오른쪽의 행 변경 |
s |
커서가 위치한 문자열 대체 |
r |
커서 위치 문자를 다른 문자로 대체 |
r-Return |
행 분리 |
J |
현재 행과 아래 행 결합 |
xp |
커서 위치 문자와 오른쪽 문자교환 |
- |
문자형(대,소문자) 변경 |
u |
이진 명령 취소 |
U |
행 변경 사항 취소 |
:u |
이전의 최종행 취소 |
텍스트 삭제
x |
문자삭제 |
dw |
단어삭제 |
dd |
행 삭제 |
D |
커서 오른쪽 행 삭제 |
:5,10 d |
5-10째 행 삭제 |
행번호 설정
:set nu |
행번호 표시 |
:set nonu |
행번호 숨기기 |
행 찾기
G |
파일의 마지막 행으로 가기 |
12G |
파일의 12번째 행으로 가기 |
텍스트의 복사 및 이동
yy |
행 yank 또는 복사 |
Y |
행 yank 또는 복사 |
P |
yank 되거나 삭제된 행을 현재 행 아래에 삽입 |
p |
yank되거나 삭제된 행을 현재 행 위에 삽입 |
:1,2 co 3 |
1-2행을 3행 다음으로 복사 |
:4,5 m 6 |
4-5행을 6행 다음으로 이동 |
탐색 및 대체
/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로 전부 대체 |
화면정리
^L 불필요한 화면 내용 제거 후 다시 표시
다른 파일을 파일내로 삽입
:r filename |
커서 다음에 파일 삽입 |
:20 r filename |
파일을 20번째 행 다음에 삽입 |
파일의 저장 및 종료
:w |
변경사항 저장 |
:w filename |
지정한 파일로 저장 |
:wq |
변경사항 저장후 vi종료 |
ZZ |
변경사항 저장후 vi종료 |
:q! |
변경사항을 저장하지 않고 vi종료 |
참고로 UNIX 와 DOS의 명령어를 비교해 보도록 하자
UNIX |
MS-DOS |
기 능 |
clear |
CLS |
화면의 내용을 깨끗이 지운다. |
ls |
DIR |
현재 디렉토리의 파일목록을 표시한다. |
cp |
COPY |
파일을 복사한다. |
mv |
REN |
파일의 이름을 변경한다. |
mv |
MOVE |
파일을 다른곳으로 옮긴다. |
rm |
DEL |
파일을 삭제한다. |
cat |
TYPE |
파일내용을 표시한다. |
pwd |
CD |
현재 위치의 경로를 표시한다. |
cd |
CD |
디렉토리의 경로를 이동한다. |
mkdir |
MD |
새로운 디렉토리를 만든다. |
rmdir |
RD |
디렉토리를 삭제한다. | |