상세 컨텐츠

본문 제목

[Linux] vi편집기

운영체제/Linux

by 밍구21 2020. 5. 26. 17:34

본문

부족한 점 있으면 댓글 달아주세요.

 

 

//vi 편집기 정의

-Linux에서 파일을 수정할 때 사용하는 기본 제공 문서 편집기

 

라고 하면 모든 설명이 끝난다. 그럼 바로 실습을 해보자!!

그전에 vi편집기의 세 가지 모드를 알아보자.

 

//vi 편집기 모드

-명령 모드 : 파일이 명령어를 기다리는 모드. 처음 편집기를 켜거나 ESC를 눌렀을 때이다. 텍스트 입력이 안된다.

-입력 모드 : 텍스트를 입력하는 모드. 입력 명령어는 아래에 있다.

-실행 모드 : 파일을 저장, 실행, 종료 할 때 모드이다. 명령 모드 상태에서 :를 누른 뒤 실행 명령어를 입력하면 된다. 마지막 줄 모드 라고도 부른다.


 

//vi 편집기 실행 명령어 - vi 파일 이름

 

 

 

 

나는 ming이라는 이름의 파일을 만들어 내용을 편집하기 위하여 vi 파일 이름 을 입력한 뒤 엔터를 누르면

 

 

 

 

 

다음과 같이 vi편집기가 뜬다. 입력을 해본다. 안 눌린다!!! 이런!!! 내가 d를 눌러서 오른쪽 하단에서 왼쪽으로 세 번째에 d라고 뜬다. 하지만 편집기에는 입력이 되지 않는다. 

 

이런 상태를 명령 모드라고 한다. 편집기에 글자가 입력되지 않는다.

 

편집기에 입력을 하기 위해서는 입력 모드로 바꿔야 한다.

 

//vi 편집기 입력 명령어

i - 커서 앞(왼쪽)부터 텍스트 입력

I - 커서 줄 맨 앞부터 텍스트 입력

o - 커서 한 줄 아래에 행을 추가하여 텍스트 입력

O - 커서 한 줄 위에 행을 추가하여 텍스트 입력

a - 커서 다음(오른쪽)부터 텍스트 입력

A - 커서 줄 마지막부터 텍스트 입력

 

나는 파일에 입력된 내용이 없으니 커서 위치는 상관이 없다.

 

아무거나 누르자!

 

 

 

 

뿅.

입력 명령어를 누르면 편집기 아래가 이렇게 변한다. 이제 입력이 가능한 상태이다.

 

 

 

 

나는 파일의 내용으로 Hi swing을 적었다.

 

Hi는 조금 건방져 보인다. 한글이었으면 안녕하십니까 라며 정중히 썼을 것이다.

 

어쨌든 내용을 다 적었으므로 내용을 저장해보자. 어떻게 해야 할까? 이럴 땐 다시 명령 모드로 바꿔야 한다.

 

//입력 모드에서 명령 모드로 변환 - ESC

그렇다. ESC를 눌러라.

 

 

 

 

그럼 이렇게 다시 입력이 안 되는 상태로 돌아간다. 빙글빙글. 명령 모드가 된 것이다.

명령 모드에서 저장하려면 실행 모드로 변환해야 한다.

 

//vi 편집기 저장 명령어 - :명령어

:를 누르면 실행 모드로 바뀐다. 그러므로 저장 명령어엔 모두 :가 붙어있다.

명령어를 누른 뒤 ENTER를 누르면 실행된다.

 

:q - 종료

:q! - 저장하지 않고 강제 종료

:w - 저장

:wq 저장하고 종료 

:r 파일명 파일을 읽어서 삽입

:! 명령어 외부 명령어 실행

 

나는 :wq를 사용하여 저장 후 종료시켰다.

 

//파일 내용 출력하기 - cat 파일 이름

 

 

 

 

vi 편집기 내에서 사용하는 명령어는 아니지만 편집 후 내용을 한 번쯤은 출력해 확인하게 되니 넣었다.

내용이 잘 나온다.

 

종료 후에 다시 편집하고 싶다면 생성 때와 마찬가지로 vi 파일 이름을 입력해 들어가면 된다.

 

 

 

 

 

 


 

 

 

 

이번엔 vi 편집기를 들어갈 때 파일 이름을 설정하지 않은 상태로 들어가 보자.

 

들어가서 내용을 입력해준 뒤 저장 명령어 뒤에 파일 이름을 설정할 수 있다. 나는 파일 이름을 yo로 하겠다.

 

 

 

 

 

위와 마찬가지로 cat명령어를 사용해 yo파일의 내용을 출력해보았다.

 

 

 

 

잘 된다.

 


나는 간단한 내용을 편집했기 때문에 필요한 명령어가 많이 없었다.

하지만 다음을 준비한다 치고 명령어를 더 조사해보자.

 

//내용 삭제 명령어

x - 커서 해당 텍스트 삭제

X - 커서 앞 텍스트 삭제

dw - 커서 뒤 텍스트 삭제

db - 커서 앞 텍스트 삭제

dd - 현재 커서가 있는 행 삭제
cc - 현재 커서가 있는 행 텍스트 전체 삭제

 

dw, db, dd 명령어 앞에 숫자를 붙이면 지정 삭제가 가능하다.

 

//복사 명령어

yw - 커서 뒤 텍스트 복사

yb - 커서 앞 텍스트 복사

yd - 현재 커서가 있는 행 텍스트 전체 복사

 

yw, yb, yd 명령어 앞에 숫자를 붙이면 지정 복사가 가능하다

 

//붙여 넣기 명령어

P - 커서 앞에 텍스트 붙여넣기

p - 커서 뒤에 텍스트 붙여넣기

 

//명령 실행 취소 명령어

U : 현재 행에 실행한 명령 전체 취소

u  : 바로 이전 실행 명령 취소

.  : 직전에 실행한 명령어 재실행

 

 

다른 명령어가 더 필요해지면 추가 업로드하겠다.

 

 


//커서 이동 명령어

k - 상 ↑

j - 하 ↓

h - 좌 ←

l - 우 →

0 (숫자) -  커서가 있는 행의 맨 앞

$ - 커서가 있는 행의 맨 뒤

gg - 처음행 맨 앞으로

G - 마지막행 맨 앞으로

nG - n번째 행 맨 앞으로

관련글 더보기