VI 명령어

OS/linux-unix 2013. 2. 2. 23:19

 

http://gyuha.tistory.com/157

 

=============================================================================================================

 

 

How to use vi editor


사 용 법
(^ : CTRL , 편집모드: 편집모드에서 해당 명령 실행)
 1. 들어가기
vi filename  주어진 파일이름으로 편집을 시작한다.
파일이 존재하지 않으면 새로 만들게 된다.
vi +15 filename  파일을 열때 15 번째 줄로 커서를 보낸다.
vi +/sample filename  'sample' 단어가 있는 라인으로 커서를 보낸다. 
vi -R filename
view filename 
파일을 읽기 전용으로 읽는다. 
vi -r filename  깨진 파일을 복구한다. 
2. 빠져 나가기 
:q
:q!
:wq!
:wq filename
아직 변경되지 않은 file의 editing 종료
한번 변경이 가해진 filed을 저장하지 않고 종료
편집된 내용을 저장하고 종료
편집된 내용을 filename으로 저장하고 종료
3. 편집 
i

Ni test ESC 
커서 위치에 입력
커서 위치한 라인의 처음부터 입력 
test를 N번 반복 입력 
a
커서 오른쪽에 삽입
커서 위치한 라인의 끝에서부터 입력 
o
커서가 위치한 라인 아래 새 라인 삽입
커서가 위치한 라인 위에 새 라인 삽입 
x
X
dw
dd 
dG
d1G
:5,10 d
Ndw 또는 Ndd
D 또는 d$ 또는 c$
d)
d} 
커서가 있는 문자를 삭제
커서의 앞 문자를 삭제
커서가 있는 단어를 삭제
커서가 있는 라인을 삭제
파일 마지막 부분까지 삭제
파일의 처음부터 커서 위치까지 삭제한다.
5-10번째 줄까지 삭제한다.
커서의 위치에서 N개의 단어/라인을 삭제
커서 위치 이후 그 라인 끝까지 모두 삭제 
커서 이후 한 문장 삭제
커서 이후 한 문단 삭제 
r
r Enter
R
s

xp 
커서위치에서 한 문자를 치환
줄을 분리
커서의 위치에서부터 원하는 만큼의 문자 치환
커서 앞쪽의 문자열을 대체
substitute lines
커서 위치의 문자와 오른쪽 문자의 위치를 바꾼다. 
대소문자를 변경 
cw
cc
c
Ncw 또는 Ncc 
커서 오른쪽의 단어를 변경
커서 위치의 라인을 바꿈
커서 위치에서부터 그 라인의 끝까지 바꿈
커서위치에서 N개의 단어/라인 바꿈 
u
U
:u
바로 전에 행한 한 번의 명령 취소
현재 행에서 이루어진 모든 명령 취소
이전 마지막줄 명령을 취소
repeat last change 
Nyl
yw
yy 또는 Y
Nyw 또는 Nyy
p

:1,2 co 3 
:4,5 m 6 
yank N charaters
커서 위치한 단어를 복사
커서가 위치한 라인을 복사
커서가 위치한 라인부터 N단어/라인까지 복사
커서 다음에 복사한 내용을 붙인다.
커서 이전에 복사한 내용을 붙인다. 
1-2번째 줄을 복사하여 3번째 줄 다음에 둔다.
4-5번째 줄을 이동하여 6번째 줄 다음에 둔다 
J
Enter 
현재 라인과 다음 라인을 한 라인으로 결합
현재 커서 위치에서 라인을 분리 (편집상태) 
^L  뒤섞인 화면을 지운다.(다시 그린다) 
ESC  편집모드종료 
4. 이동 (명령모드에서 실행) 
h, spacebar
j
k, backspace

방향키 
커서위치에서 한 문자 앞으로 이동
커서위치에서 한 문자 아래로 이동
커서위치에서 한 문자 위로 이동
커서위치에서 한 문자 뒤로 이동 
^f
^b
^d
^u
한 페이지 아래로 이동
한 페이지 위로 이동
반 페이지 아래로 이동
반 페이지 위로 이동 
0
$
w (cf, Nw)
b (cf, Nb)

커서위치 라인의 처음으로 이동
커서위치 라인의 끝으로 이동
커서위치에서 한(N) 단어 앞으로 이동
커서위치에서 한(N) 단어 뒤로 이동
커서위치에서 한 공백 구분 단어 앞으로 이동 
커서위치에서 한 공백 구분 단어 뒤로 이동 
G
NG 또는 :N 또는 
N Enter

Enter 
현재 파일의 제일 마지막 라인으로 이동
N번째 라인으로 이동
다음 라인으로 이동 
 
(, ) 
{,} 
한 문장 단위 앞/뒤 이동 (공백2개이상을 한 문장으로 인식)
한 문단 단위 앞/뒤 이동 
5. 검색 및 치환 
/찾을 문자열
?찾을 문자열
n
커서위치에서 아래로 문자열을 검색
커서위치에서 위로 문자열을 검색
다음 문자열로 이동 
이전 문자열로 이동 
:[s,e]s/old/new
:s/old/new/g
:1,$ s/old/new 
:g/search/s//replace/g 
start라인에서 end라인까지 문자열 치환
전체 파일내에서 문자열 치환 
1라인에서 마지막 라인까지 치환 
검색하여 대체한다. 
6. 기타 명령 
:se nu
:set number
:se nonu 
:set nonumber 
:set ic
:set noic
^g 
각 라인앞에 일련번호를 표시
각 라인앞에 일련번호를 표시하지 않는다.
검색시 대소문자를 구분하지 않는다.
검색시 대소문자를 구분한다.
현재 라인버호를 표시 
:ab ttt the  ttt를 the로 상용구 등록 
:e filename
:r filename
:sh
:! command
:r !command 
filename 불러와 편집
filename을 불러와 커서 위치에 삽입
shell 나들이
shell 명령어 수행
shell 명령어를 vi 화면내에 출력 
 
Posted by 張's blog
,