관리 메뉴

IT창고

리눅스 vi편집기 사용 (vim포함) 본문

서버운영/Linux

리눅스 vi편집기 사용 (vim포함)

방구석여포 2017. 8. 19. 11:30

리눅스에는 파일을 편집하기 위해 존재하는 것이 있는데 vi와 vim이 있습니다.

vi와 vim은 리눅스에서 가장 많이 사용하는 텍스트 편집기로 현재는 vi의 여러기능을 추가한 vim을 사용

합니다. 대표적인 모드형(입력모드와 명령모드가 구분) 편집기로서 다양한 운영체제에서 사용이 가능합니다.


리눅스에는 vi가 기본적으로 설치되어있는데 vim은 설치되어 있지 않는 경우가 있습니다. vim설치법은

yum -y install vim 을 입력해주시면 간단히 설치가 됩니다. vim은 vi의 확장된 기능을 탑재한 vi이므로 vim에서 작업하시는게 좋습니다.


vi의 간단한 사용법으로는 이동관련으로 k위로커서이동 j아래로커서이동 l오른족 h왼쪽이 있으며 파일저장및종료는 명령모드에서 :w는저장 :q종료 :q! 강제종료 :w[파일명] 새로운파일저장 :wq저장하고종료가 있습니다. 이부분은 vi와 vim을 다루기 위해 가장 기초적인 부분이고 이제부터 vi의 유용한 단축키를 설명하겠습니다.


vi 단축키


행 이동

[숫자]gg - [숫자]번 라인으로 이동합니다. [숫자]가 생략되면 1을 의미하여 파일의 첫번째 줄로 이동합니다.

ex)10gg

[숫자]G - [숫자]번 라인으로 이동합니다.

ex) 10G(shift + g)

[숫자]가 생략되면 마지막 행을 의미하며 파일의 마지막라인으로 이동합니다.

ex)G(shift + g)

실행모드에서

:[숫자]   [숫자]번 라인으로 이동합니다.

ex) :100


삭제

 x - 커서에 위치한 문자 삭제(delete키)

 dd - 커서가 위치한 한 라인 삭제

ex) 10dd // 커서가 위치한 곳부터 10줄 삭제

복사 (yank)

 yy - 커서가 위치한 한 라인 복사

ex) 3yy

붙여넣기(put)

p - 커서가 위치한 곳에붙여넣기


기타

왼쪽에 행 번호 출력 합니다.

:set number 혹은 :set nu


u - undo 바로 이전에 실행한 명령어 취소 합니다.

ctrl + r  - rado 바로 이전에 취소했던 명령을 다시 실행합니다.

:e!  - 편집한 내용을 저장하지 않고 파일을 다시 열어줍니다.

/[문자열] - 문자열 검색합니다.

ex) /MAX    //해당문서에 MAX를 찾아 블럭처리 합니다.

n - 다음으로 일치하는 문자열로 이동합니다.

N - 이전으로 일치하는 문자열 이동합니다.

:%s/[OLD]/[NEW]/g - 문자열 치환합니다.

ex) :%s/PASS/APSS/g   //해당 파일내에서 PASS를 APSS로 치환합니다.


위에 유용한 단축키들을 설명했는데 눈으로 보는것과 직접 사용해보는 일은 다른 일입니다. 그렇기에 간단히 연습을 해봐야만 하는데 그럴때 사용할 vi 튜토리얼이 있습니다 입력창에 vimtutor을 입력하면 설명과 함께 실습해볼수있습니다. vimtutor로 연습하셔도 되고  간단한 게임형식으로 vi편집기와 친해질수있는 https://vim-adventures.com/ 사이트가 있습니다 레벨별로 있는데 vi를 쉽게 익히실수있습니다. 


또한 vi를 사용하시다보면 파일의 내용을 변경, 세션연결이 해제가 되거나 혹은 프로세스가 강제로 종료되는

경우가 생길수있는데 이럴떄 vi는 기존에 변경된 내용을 저장하고 있는 스왑(swap)파일을 생성합니다.

ex) .파일명.swp  //해당 파일이 위치한 경로에 이와같은 파일이 생성된다(숨김파일로되어있습니다)

이 스왑파일을 실행하려면 vim -r[파일명] 명령어로 파일을 복구한뒤 스왑파일을 삭제해야 다음번 실행시 동일한 메세지가 나오지 않습니다. 

 

Comments