반응형

Vi 에디터

 

[입력모드]

i : 현재 커서 앞에 입력

a : 현재 커서 뒤에 입력

o : 커서가 위치한 다음 행 입력

I : 커서가 위치한 행의 첫 칼럼 이동 입력

A : 커서가 위치한 행의 마지막 칼럼 이동 입력

O : 커서가 위치한 행의 앞에 입력

 

[파일 저장, 종료]

:q : 그냥 종료

:q! : 강제 종료

:w [파일명] : 작업 내용 저장 (파일 명 지정 시 새 파일로 저장)

:wq,:wq!,(명령모드에서) ZZ : 작업한 내용 저장하고 vi 종료

 

[커서 이동 명령]

h, j, k, l : , 아래, ,

^,0 : 현재행의 처음

$ : 현재 행의 마지막

- : 커서를 앞 행의 처음

+,Enter : 커서를 다음 행의 처음

H : 커서를 화면 맨 위로 이동

M : 커서를 화면 중간 행으로 이동

L : 커서를 화면의 맨 아랫 행 이동

w : 다음 단어 첫 글자로 이동

b : 앞 단어 첫 글자로 이동

e : 단어의 마지막 글자로 이동

 

[화면 이동 명령]

^u(ctrl+u) : 반 화면 위로 이동

^d(ctrl+d) : 반 화면 아래로 이동

^b(ctrl+b) : 한 화면 위로 이동

^f(ctrl+f) : 한 화면 아래로 이동

^y(ctrl+y) : 화면을 한 행만 위로 이동

^e(ctrl+e) : 화면을 한 행만 아래로 이동

 

[특정 행 바로 이동]

G(shift+g) : 파일 마지막 행으로 이동

행 번호G : 지정한 행 번호로 이동

:행 번호 : 지정한 행 번호로 이동 (마지막 행 모드)

:$ : 파일의 마지막 행으로 이동(마지막 행 모드)

 

[내용 수정하기]

r : 커서가 위치한 글자를 다른 글자로 수정

cw,#cw : 커서 위치부터 현재 단어의 끝가지 수정 #에는 수정할 단어의 수를 지정 ex)3cw

s,#s : 커서 위치부터 esc 키 입력까지 수정 #에는 수정할 글자 수

cc : 커서가 위치한 행 내용 모두 수정

C : 커서 위치부터 행의 끝까지 수정

 

[내용 삭제하기]

x,#x : 커서 위치의 글자 삭제. #에는 삭제할 글자 수 지정

dw, #dw : 커서 위치의 단어 삭제 , #에는 삭제할 단어 수 지정

dd, #dd : 커서 위치의 행 삭제, #에는 삭제할 행의 수 지정

D : 커서 위치부터 행의 끝까지 삭제

 

[명령 취소하기]

u : 명령 취소

U : 해당 행에서 한 모든 명령 취소

:e! : 마지막으로 저장한 내용 이후의 것을 버리고 새로 작업

 

[복사하기,잘라내기,붙이기]

yy, #yy : 커서가 위치한 행 복사. #에는 복사할 행 수 지정

p : 커서가 위치한 행 아래쪽에 붙임

P : 커서가 위치한 행 위쪽에 붙임

dd,#dd : 삭제와 같은 기능이지만 잘라내는 기능 포함

 

[범위 지정 명령]

1,$,% : 1행부터 마지막 행 까지 지정

1, . : 1행부터 커서가 있는 행까지 지정

., $ : 커서가 있는 행부터 마지막 행까지 지정

,-3 : 현재 행과 이전 세 번째 행까지 ( 총 네 행) 지정

10,20 : 10행부터 20행까지 지정

 

[마지막 행 모드에서 복사,잘라내기,붙이기]

:#y : #으로 지정한 행을 복사 ex) 3y3행을 복사

:<범위>y : 범위로 지정한 행을 복사 ex)2,4y2~4행을 복사

:#d : #으로 지정한 행을 잘라냄(삭제) ex) 3d3행을 잘라냄

:<범위>d : 범위로 지정한 행을 잘라냄(삭제) ex) 1,4d1~4행을 잘라냄

:pu : 현재 행 다음에 버퍼의 내용을 붙임

:#pu : #으로 지정한 다음의 버퍼 내용을 붙임 ex) 4pu

 

[검색하기]

/문자열 : 문자열 아래 방향으로 검색

?문자열 : 문자열을 위 방향으로 검색

n : 찾던 방향으로 다음 문자열 검색

N : 역방향으로 다음 문자열을 검색

 

[바꾸기]

:s/문자열1/문자열2/ : 커서가 위치한 행에서 첫 번째로 나오는 문자열1을 문자열2로 바꾼다

:s%/문자열1/문자열2/g : 파일 전체에서 모든 문자열1을 문자열2로 바꾼다

:<범위>s/문자열1/문자열2/ : 범위 내 모든 행의 각 행에서 첫 번째로 나오는 문자열1을 문자열2로 바꿈

:<범위>s/문자열1/문자열2/g : 범위 내 모든 행에서 문자열1을 문자열2로 바꾼다

:<범위>s/문자열1/문자열2/gc : 범위 내 모든 행에서 문자열1을 문자열2로 바꿀 때 수정할지 여부를 묻는다.

 

[파일 관련 명령]

:r 파일명 : 지정한 파일을 읽어들여 현재 커서 위치에 삽입

:e 파일명 : 지정한 파일로 전환 (기존 파일을 :w 로 저장한 뒤에 실행)

:n : vi 시작 시 여러 파일을 지정했을 경우 다음 파일로 작업 이동

:! [셸 명령] : vi 작업을 잠시 중단하고 셸 명령 실행 (enter키를 입력해야 함)

:sh : vi를 잠시 빠져나가 셸 명령을 실행한다 (vi로 돌아오려면 exit 명령을 입력해야 한다)

 

 

'Study Note > OS' 카테고리의 다른 글

[Linux] 리눅스 커널 컴파일 (fedora)  (0) 2016.03.07
[Linux] 리눅스 커널 구조  (0) 2016.03.07
[Linux] Shell Script  (0) 2016.02.15
[Linux] Shell & Shell 내장 명령어  (0) 2016.02.15
[Linux] 기본 명령어  (0) 2016.02.15

+ Recent posts