본문 바로가기
UniX

vi editor

by 타마마임팩트_쫀 2012. 6. 19.

[출처] 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 

마지막 라인으로 이동

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