Vi 편집기 설명과 조작법, 커서이동

Posted by 미니송
2017.07.24 17:51 IT




Vi 편집기


이번 포스팅은 vi편집기에 대해 하겠습니다. 많은 분들이 쓰고 있다고 생각이 됩니다. 그만큼 기능도 강력합니다. 어떠한 기능이 있고 어디서부터 시작했는지에 대해 설명하도록 하겠습니다. 처음에 쓸 때는 적응도 안되고... 지금도 적응이 안됩니다. ( 리눅스 초보자이기 때문입니다. ) 하지만 잘 쓰시는 분들은 정말 잘 쓰시고 있는 vi 편집기에 대해 설명하도록 하겠습니다.



설명

vi 편집기는 리눅스 뿐만 아니라 유닉스 시스템에서 주로 사용하는 텍스트 편집기입니다. 유닉스 운영체제에서의 대표적인 문서 편집기로는 Vi(Visual display editor) Emacs가 있습니다. Emacs 편집기는 주로 문서편집을 위해 개발되었고, vi는 프로그래밍을 지원하기 위해 개발되었습니다.



vi는 그래픽 사용자 인터페이스(GUI)가 익숙한 사용자에게는 매우 낯설은 에디터지만 프로그래머 등 텍스트 작업을 주로 하는 사용자에게는 간결한 인터페이스와 키보드를 벗어나지 않고 모든 일을 할 수 있는 막강한 기능으로 크게 환영 받고 있습니다.

윈도우와 같은 gui가 익숙하여 마우스 커서를 누르면 바로 열을 이동할 수 있고 이러한 시스템이 없었기 때문에 unix계열을 쓰시는 분들은 정말 잘 사용하시는 것 같습니다. 파일의 간단한 편집, 전자 우편 쓰기, 복잡한 프로그래밍까지 vi는 유닉스 시스템에 널리 사용되고 있는 편집기입니다.



1976년 빌 조이가 초기 BSD 릴리즈에 포함될 편집기로 만들었다고 합니다. vi라는 이름은 한 줄씩 편집하는 줄 단위 편집기가 아니라 한 화면을 편집하는 비주얼 에디터(visual editor)라는 뜻에서 유래했습니다. 간결하면서도, 강력한 기능으로 열광적인 사용자가 많습니다. 한 화면이라는 점은 커서가 없는 콘솔에서 제어하기 편했을 것이라고 예상됩니다.



현재는 오리지널 vi를 사용하는 경우는 거의 없고, 일반적으로 기능을 모방하여 만들어진 클론을 사용하고 있습니다. 이런 클론 중 많이 쓰이는 것은 기능이 다양한 것을 장점으로 내세우며, 리눅스 배포판에 포함되는 Vim, 그리고, BSD 라이선스로 제공되며 원본 vi의 동작과 호환성으로 정평이 나 있는 nvi, 독자적인 팬층을 확보한 elvis등이 있습니다. 저도 Vim을 사용하고 있습니다. 원래는 vi인줄 알고 있었는데 알고보니 vi의 업그레이드 버전이 vim이었습니다.



Vim "Vi IMproved"의 약자로 만든 이름이며 현재 vi보다 더 많이 사용되고 있습니다. 이 프로그램은 vi보다 더 다양한 기능(구문 강조 기능(또한 이 기능을 작성하는 기능), 마우스 지원, 그래픽 버전, 시각 모드, 수많은 새로운 편집 명령어들을 가지고 있다. 현재 대부분의 리눅스 시스템에서는 이 프로그램이 표준 모델로 들어가고 있습니다. 다음은 라즈베리파이에서의 vi편집기를 열었을때의 모습입니다.





 

조작법

vi편집기는 세 가지의 모드가 있습니다. 명령모드, 입력모드, 행모드 세 가지로 구분할 수 있습니다. 프로그램을 시작하면 일반적으로 명령(normal) 모드로 시작하게 됩니다. 이때 키보드에서 I 키를 누르게 되면 편집(insert)모드로 들어가게 됩니다. Esc 키를 누를 때까지 문서 작성을 할 수 있습니다. vi에서는 편집모드에서만 내용을 넣거나 수정할 수 있습니다.

 

Vi의 여러가지 명령어

vi 편집기는 입력, 명령, 비주얼 등의 모드가 있어 같은 키 입력이라도 현재 모드에 따라 다른 동작을 합니다. 입력과 명령모드를 주로 왔다 갔다 하면서 편집하게 됩니다. 입력모드에서는 말 그대로 입력하는 문자가 그대로 문서에 입력됩니다. 입력상태에서 Esc 키를 누르면 명령모드로 바뀌게 된다. 명령어 모드에서는 Alt Ctrl 키 등을 사용하지 않고도 키를 두드려서 커서의 움직임이나, 붙여넣기, 지우기 등의 기능을 수행할 수 있습니다.



방향키를 제외한 커서를 움직이는 키가 있습니다. H는 왼쪽, J는 커서를 아래로, K는 위로 움직이게 하며, L는 오른쪽으로 커서가 움직이게 됩니다. X는 커서 위치의 한 문자를 지우고, I는 입력모드로 들어가게 합니다.

H : ←,  J : ↓,  K : ↑,  L : →

X : 삭제, I : 입력모드 진입, ESC : 행모드



명령어 모드에서 V 키 등을 누르면 비주얼 모드가 되고 영역을 설정할 수 있게 된다. vi 실행 초기의 모드는 명령모드이기 때문에, vi를 처음 사용하는 사용자들은 아무리 키를 눌러도 누른 키가 입력이 되지 않아 당황하는 경우가 많습니다.

vi편집기를 종료하기 위해서는 우선 esc키를 누른 후 행모드(라인모드)에서 명령어를 입력해야 합니다. :(콜론)을 입력해야 저장 혹은 종료 명령을 실행할 수 있습니다.



:q    - 변경된 내용이 없는 경우에 그대로 종료합니다.

:q!   - 변경된 내용을 저장하지 않고 강제로 종료합니다.

:wq  - 변경된 내용을 저장하고 종료합니다.

:x     - 변경된 내용을 저장하고 종료합니다.

 


기타 조작법

b  :  커서를 이전 단어의 첫 글자로 이동합니다.

e  :  커서를 다음 단어의 끝 글자로 이동합니다.

w  :  커서를 다음 단어의 첫 글자로 이동합니다.

예를 들어, I am student라는 문장 있다고 하면 I에 커서가 있고 2w를 입력하면 student로 이동하게 되는데 첫 글자인 s에 커서가 위치하게 됩니다. 이러한 방법으로 사용을 할 수 있습니다.

 


커서의 이동

(  :  커서를 문장의 시작으로 이동합니다.

)  :  커서를 문장의 끝으로 이동합니다.

{  :  커서를 문단의 시작으로 이동합니다.

}  :  커서를 문단의 끝으로 이동합니다.



이런 문장과 문단의 시작과 끝으로 이동할 수 있는 조작이 존재합니다.

또한 H, M, L, G의 커서 이동방법이 있는데 H는 커서를 화면의 맨 위로 이동시키고, M은 커서를 화면의 중간 위치로 이동 시킵니다. L은 커서를 화면의 마지막으로 이동시키고, G는 커서를 파일의 마지막 줄로 이동시킵니다. 여기서 G는 앞에 숫자를 붙일 수 있는데 2G를 입력하면 2번째 줄로 이동하게 됩니다.


이런 명령어 뿐만 아니라 yy는 커서가 있는 줄 복사할 수 있으며 p로 붙여넣기를 할 수 있습니다. dd라는 커서가 있는 줄을 지우는 삭제 명령도 있습니다. 이것 외에도 소개하지 않은 기타 기능들이 여러 가지 있습니다. 나머지 기능들에 대해서는 조금씩 설명을 하거나 나중에 이 포스팅에 붙여 넣도록 하겠습니다. 왜냐하면 별로 쓰이지 않거나 내용이 조금 많기 때문에 여기서 줄이도록 하겠습니다.





§ 글에 틀린점이 있다면 충분히 수정의 의지가 있으니 고운말로 지적 부탁드립니다. 

§ 공감을 눌러주시면 글을 작성하는데 큰 힘이 됩니다. 


이 댓글을 비밀 댓글로