본문 바로가기
서버/Linux

[Linux] vi(visual editor) & vim(vi improved)

by 느링 2017. 9. 19.

vi (visual editor) 편집기란?

텍스트 기반의 편집기로써 유닉스, 리눅스 계열의 운영체제에서 사용하는 유명한 편집기입니다.

입력 모드, 명령 모드, 실행 모드의 세 가지 모드로 구분하며 사용합니다.

① 입력 모드 - 입력을 원하는 글자를 입력하고, 화면은 입력한 상태를 그대로 보여주는 모드

② 명령 모드 - 명령을 사용하여 커서를 이동하거나 글자를 삭제 및 교체하고 문자열을 검색할 수도 있는 등 다양한 편집이 가능한 모드로 명령이 아닌 키보드 입력은 모두 에러 처리됨

③ 실행 모드 - 콜론 ( : )을 앞에 붙이고 사용하며 저장, 편집, 검색 기능 등 다양한 기능을 제공하는 모드

 

 

vi편집기는 터미널에서 vi를 실행하면 명령모드로 실행됩니다.

 

vim이란?

1976년 개발된 유닉스의 기본 편집기인 vi 에디터를 개량한 버전입니다. ( Vi IMproved : 향산된 vi )

vi 편집기에 비해 vim 편집기는 색상으로 비쥬얼과 빠른 시인성을 높였으며, 기타 몇몇 기능이 상향되어진 편집기입니다.

 

vi에디터를 개량한 버전이 vim이기 때문에 따라서 본질적인 차이는 없습니다.

리눅스에서는 vi를 쓸지 vim을 쓸지 고민하지 않아도 됩니다. 둘다 똑같은 것입니다.

 

※ vim 사용 전 설치 ※

 

vi모드 실행법

vi [파일명]

- [파일명] 존재하면 해당파일을 vi 텍스트 편집기로 열겠다. (편집)

- [파일명] 없는 파일이면 해당 이름으로 새로운 파일을 생성

 

vi 명령어

종료할 때

 

파일 불러오기

 

저장하기

 

편집 명령

 

방향키를 이용한 커서이동

 

h j k l 로 쓰면 아주 효율적이기 때문에 처음부터 익숙해지도록 노력하기!!

https://vim-adventures.com/ -> vim 방향키 연습하는 게임 사이트 ( level 3까지만 무료)

 

유용한 명령어 단축키 **

**

:set number

:set nu

→ 화면에 행번호 표시

 

:#

→ 행 번호를 입력한 곳으로 커서 이동

※ "#"은 숫자를 의미합니다.

 

u

→ 바로 이전에 실행한 명령어 취소

U

→ 한 줄에서 수정한 것을 모두 취소

 

ctrl + r

→ 바로 이전에 취소 했던 명령을 다시 실행 (ctrl + z랑 비슷한 기능)

 

:e!

편집한 내용을 저장하지 않고 파일 다시 열기

 

⑥ 문자열 치환

:%s/[OLD]/[NEW]/g    

→문서 전체에 [OLD]를 [NEW]로 치환

 

⑦ 문자열 검색

/[문자열]

입력한 문자열을 찾아준다.

ex) /ABCD

n

→ 다음으로 일치하는 [문자열]로 커서 이동

N

→ 이전으로 일치하는 [문자열]로 커서 이동

 

vim 튜토리얼

#vimtutor 을 입력하면 vim에 대한 기본적인 기능을 연습할 수 있습니다.

 

vi를 사용하여 파일의 내용을 변경하던 중에, 세션 연결이 해제가 되거나,

vi 프로세스가 강제로 종료되는 경우 vi는 기존에 변경된 내용을 저장하고 있는 스왑(Swap)파일을 생성합니다.

ex) 수정하고 있던 파일명 → abc.txt

                 스왑 파일명 → abc.txt.swp

→ 원본 파일이 위치한 곳에 숨김 파일로 생성되며, 확장자 swp가 붙는다.

 

#vim -r [파일명] 명령어로 파일을 복구 한 뒤,

스왑파일을 삭제 해야 다음번 해당 파일 편집시 복구 메세지가 출력되지 않습니다.

 

 

 

 

 

 

 

 

 

 

'서버 > Linux' 카테고리의 다른 글

[Linux] 리다이렉션 (Redirection) & 파이프 (Pipe)  (0) 2017.09.26
[Linux] SSH 배너 설정  (0) 2017.09.21
[Linux] 파일 링크 (심볼릭 & 하드)  (0) 2017.09.19
[Linux] (기본명령어) grep / watch  (0) 2017.09.19
[Linux] Xshell 기능  (0) 2017.09.14