Index . 블로그창고 . Any comments?

\cat learning

Learning vi

Huidae Cho

UNIX 기본편집기 vi
시작하기
Input 모드로
Command 모드로
ex 모드로
끝내기
커서이동
지우기
찾기
치환
취소
복사 및 이동
줄병합 및 명령반복
범위 지정
기타

UNIX 기본편집기 vi

vi는 University of California at Berkeley에서 처음 만들어진 편집기로서 많은 UNIX계열에서 기본편집기로 쓰이고 있다. 일반적인 편집기와 달리 세가지 모드로 구성되어 있어 초보자가 배우기에는 약간의 어려움이 있다. 하지만 한 번 익숙해지고 그 강력함에 맛을 들인다면 다른 편집기는 사용하지 못 할 정도가 될 것이다.

시작하기

우선 'vi --help'를 프롬프트에서 입력함으로써 여러가지 옵션들을 볼 수 있다. 이 옵션들은 시스템에 따라 다소 차이가 있다. 하지만 개인적으로 이 옵션들은 잘 사용하지 않으므로 한 가지만 간단히 소개하겠다.

vi filename

위 명령으로 vi 편집을 시작할 수 있다. 만약 파일의 #번째 줄에서 편집을 시작하려면 다음과 같이 실행한다.

vi +# filename

예를 들어

vi +5 filename

이렇게 하면 다섯번째 줄에서 시작한다. 마지막 줄에서 시작하려면 다음과 같다.

vi +$ filename

물론 $는 마지막 줄을 의미한다. 만약 원하는 패턴이 처음 나타나는 줄에서 편집을 시작하려면 다음과 같이 실행한다.

vi +/pattern/ filename

Input 모드로

a커서 오른쪽에서 입력시작
i커서 왼쪽에서 입력시작
o현재 줄 아래 빈 줄 삽입
A현재 줄 끝에서 입력시작
I현재 줄 처음부터 입력시작
O현재 줄 위에 빈 줄 삽입

Command 모드로

Input 모드에서 ESC를 누른다.

ex 모드로

Command 모드에서 :를 입력한다.

끝내기

ZZ저장하고 종료
:q파일이 수정되지 않았거나 이미 저장되었으면 종료
:q!파일의 수정여부를 무시하고 무조건 종료
:wq저장하고 종료. ZZ와 동일

커서이동

h왼쪽으로
l오른쪽으로
k위쪽으로
j아래쪽으로
0현재 줄의 처음으로
$현재 줄의 마지막으로
W오른쪽 단어의 처음으로
wW와 유사. W는 단어를 공백으로 구분하지만 w는 < > . , 등으로 구분
B왼쪽 단어의 처음으로
bB와 유사. 구분자는 w와 동일
E오른쪽 단어의 마지막으로
eE와 유사. 구분자는 w와 동일
(현재 문장의 처음으로
)다음 문장의 처음으로
{현재 문단의 처음으로
}현재 문단의 마지막으로
H화면의 첫 줄로
M화면의 중간 줄로
L화면의 마지막 줄로
#G#번째 줄로. ex) 15G
G마지막 줄로
^F한 화면 아래로
^D반 화면 아래로
^B한 화면 위로
^U반 화면 위로

지우기

x한 글자 지우기
dd한 줄 지우기
#dd현재 줄에서 #개의 줄 지우기
d#d#dd와 동일
dw한 단어 지우기
#dw현재 단어에서 #개의 단어 지우기
D현재 위치에서 줄의 마지막까지 지우기

찾기

f#글자 #를 앞방향으로 찾기
F#글자 #를 뒷방향으로 찾기
/#패턴 #를 앞방향으로 찾기
?#패턴 #를 뒷방향으로 찾기

치환

r#현재 위치 글자를 #로 치환
R현재 위치에서 덮어 쓰기
s현재 위치 글자를 문자열로 치환
S현재 줄을 문자열로 치환

취소

u이전 명령 취소
U현재 줄에서 행한 명령 취소

복사 및 이동

#yy#개의 줄을 버퍼로 복사
#yw#개의 단어를 버퍼로 복사
#dd#개의 줄을 버퍼로 이동. 삭제와 동일
#dw#개의 단어를 버퍼로 이동. 삭제와 동일
p버퍼내용을 현재 줄 아래에 붙이기
P버퍼내용을 현재 줄 위에 붙이기

줄병합 및 명령반복

J두 줄 합치기
.이전 명령 반복

범위 지정

m#현재 줄을 마크 #로 지정. ex) ma
:'#, '## w filename마크 #에서 마크 ##까지 filename으로 저장. ex) :'a, 'b w filename

기타

:w파일명이 지정되었을 때 저장
:w filename파일명을 지정하면서 저장
:#, ## w filename#번째 줄에서 ##번째 줄까지 filename으로 저장
:r filenamefilename의 내용 삽입
:r !shellcommandshellcommand를 셸에서 실행한 결과 삽입
:e filenamefilename 편집
:!shellcommandshellcommand를 셸에서 실행
:map # list_of_key_strokes매크로 # 정의. Key strokes에 알파벳 이외의 입력이 있으면 Ctrl+V를 먼저 누르고 입력. ex) ":map a iabcd" a라는 명령은 abcd를 입력한다.

All the works in this site except software and copyrighted materials by others (e.g., 문학) are licensed under a Creative Commons License. 소프트웨어 및 문학과 같이 다른 이에게 저작권이 있는 작품을 제외하고 모두 크리에이티브 커먼즈 라이센스를 따른다.
Tue Dec 7 17:46:50 2021 . XHTML . CSS (lightbox.css is not part of Uniqki. ;-) . Powered by Uniqki!
refresh . edit . loginout . index