[출처] http://blog.naver.com/aromatizar?Redirect=Log&logNo=40156123831
vi 편집기는 리눅스, 유닉스에 일반적으로 사용하는 text 입력기이며
text file을 만들거나 수정할수 있는 interactive editor 이다.
처음 사용자들은 꽤나 어렵고 난감하고 짜증이 나지만.
가장 많이 쓰이고 기본으로 꼭 사용할줄 알아야?하는 매우 중요한 사항이다.
vi 편집기는 기본적으로 세가지 모?드가 제공되는데
command mode , edit mode, last line mode 세가지이다..
Command mode 는 vi 편집기의 기본모드이며
명칭 그대로 command를 이용하여
delete, change, copy, paste, move, cursor 이동 등을 할수가 있다.
어디서든 esc를 누르면 command mode 로 된다.
보시다시피 화면엔 아무런 표시도 안나온다.
edit mode 는
file 에 text를 직접 입력할수 있는 모드이면.
i or o, a 등을 이용해 edit모드로 된다.
Command mode랑 아무차이 없지만 입력이 된다는 점만 틀리다..
실수하지 않도록 esc를 잘 누르는 습관을 기르는것이 편리하다.
lastline mode ?는
?text 의 검색이나 치환, quit 및 save 등을 할수 있다.
?command mode에서 :, /, ? 입력하면 lastline mode로 된다.
lastline mode 는 제일 아래쭐에 커서가 깜빡이게 된다..그나마 이건 차이가 보인다.
?
vi command 형식은 기본적으로
vi option filename 이다.
존재하지 않는 filename 을 입력해서 file생성을 할수 도 있다.
Positioning Commands
Command |
Meaning |
h |
왼쪽으로 한문자 이동 |
j |
한 라인 아래로 이동 |
k |
한 라인 위로 이동 |
l |
오른쪽으로 한 문자 이동 |
w |
앞으로 한 단어 이동 |
b |
뒤로 한 단어 이동 |
e |
현재 단어의 끝으로 이동 |
$ |
현재 라인의 끝으로 이동 |
0 |
현재라인의 처음으로 이동 |
^ |
현재 라인의 공백을 제외한 처음으로 이동 |
Return |
다음 라인으로 이동 |
Control + f ro b |
한 페이지 아래로(f), 한 페이지 위로(b) |
Control + d or u |
반 페이지 아래로(d), 반 페이지 위로(u) |
Control + l |
Screen refresh |
Input Commands
Commands |
Meaning |
a |
Cusor 다음에 text 추가 |
A |
해당 라인의 끝에 text 추가 |
i |
Cusor 전에 text 삽입 |
I |
해당라인의 시작에 text 삽입 |
o |
Cursor 아래에 새로운 라인 추가 |
O |
Cursor 위에 새로운 라인 추가 |
Editing Commands
Commands |
Meaning |
x |
Cursor에 있는 한 문자 잘라내기(cut) |
dw |
위치한 곳에서부터 한 단어 잘라내기 |
dd |
Cursor가 위치한 한 라인 잘라내기 |
D |
Cursor가 위치한 곳에서부터 라인의 마지막 부분까지 잘라내기 |
:5, 10d |
5번 부터 10번 라인 삭제 (delete) |
cw |
Cursor가 위치한 곳에 있는 단어 변경(change) |
R |
Cursor가 위치한 곳에서부터 해당 라인 끝까지 Overwrite |
C |
Cursor가 위치한 곳에서부터 해당 라인 끝까지 변경 (change) |
s |
한 문자 Substitutes -> Edit mode로 변경 |
r |
한 문자 Replaces -> Command mode 계속 유지 |
J |
현재 라인과 아래쪽 라인 join |
xp |
Cursor가 위치한 문자와 오른쪽에 있는 문자 교체 |
~ |
대소문자 변경 |
u |
이전 Command undo |
U |
현재 라인의 모든 변경 Undo |
:r filename |
Cursor 위치한 곳에 다른 파일 삽입 |
/string |
해당 String 을 아래로 진행하며 검색 |
?string |
해당 String 을 위로 진행하며 검색 |
n |
String의 다음 위치 검색 |
N |
String의 이전 위치 검색 |
:%s/old/new/g |
전체 File 에서 'old' 문자를 'new'문자로 교체 |
Copy and Paste Commands
Commands |
Meaning |
yy |
한라인 Copy |
p |
Cursor가 위치한 다음에 Paste |
P |
Cursor가 위치한 이전에 Paste |
:1,3 co 5 |
1번 3번 라인 copy하여 5번에 Paste |
:4,6 m 8 |
4번 6번 라인을 8번 라인으로 이동 |
Save and Quit Command
Commands |
Meaning |
:w |
변경 사항 저장 |
:w new_filename |
new_filename 으로 저장 |
:wq |
변경사항 저장하고 종료 |
:x |
변경사항 저장하고 종료 |
:q! |
변경사항 저장하지 않고 강제 종료 |
:wq! |
강제로 변경사항 저장하고 종료 |
Session Commands
Commands |
Meaning |
:set nu |
라인 Number 보기 |
:set nonu |
라인 Number 숨기기 |
:set ic |
검색 시 대소문자 무시 |
:set noic |
검색 시 대소문자 구분 |
:set list |
tab 이나 end-of-lile 숨겨진 문자 보이기 |
:set nolist |
tab 이나 end-of-line 숨겨진 문자 숨기기 |
:set showmode |
작업모드 보이기 |
:set noshowmode |
작업모드 숨기기 |
:set |
현재 설정된 변수 보기 |
:set all |
현재 설정된 변수 + 모든 변수 보기 |
Go Commands
Commands |
Meaning |
G |
마지막 라인으로 이동 |
1G |
처음 라인으로 이동 |
:21 |
21번 라인으로 이동 |
21G |
21번 라인으로 이동 |
'UniX' 카테고리의 다른 글
UNIX system process trace 방법 (0) | 2014.04.14 |
---|---|
OS 기본 (0) | 2014.03.11 |
HP-UX, IBM-AIX, SUN-Solaris 명령어 비교 (0) | 2012.06.21 |
raw device to file system(dd copy) [펌] (0) | 2010.04.07 |
Diskpart 명령줄 유틸리티에 대한 설명 (0) | 2010.02.05 |