(vi에디터) 사용법 Vim 에디터

제가 공부한 후에도 참고할 수 있도록 작성하는 글입니다. 참고로 저는 WSL2 환경에서 vi를 사용하고 있습니다.

  1. 1) ViI? VIM?
  2. ● VIM이란 vi_Improved의 약자로 VI 에디터에 편리하고 막강한 기능을 추가한 에디터이다. 대부분의 Linux 베포판은 기본 에디터로 VIM이 설치되어 있으며 VI 명령으로 alias되어 있다. 즉, VI를 실행하면 자동으로 VIM이 실행된다.
  3. 그럼 이런 에디터는 왜 사용하는가? 기존 GUI 환경의 VS code 등이 더 편하지 않을까?
  4. 1) 키보드만으로 모든 것을 해결할 수 있다.처음이 어렵더라도 적응하여 사용하면 그 효율성이 매우 뛰어난 에디터이며 모든 리눅스에 설치되어 있어 매우 간단하다.또 마우스가 전혀 필요 없기 때문에 노트북 하나만으로도 모든 것을 해결할 수 있다.
  5. 2) 처음 만들어질 당시까지만 해도 GUI 환경이 발달하지 않았다.이는 그만큼 이 에디터가 낡았다는 뜻이다. 리눅스 내에서 사용되는 에디터 순위 조사 결과 vim이 압도적 1위에 오르는 것도 꾸준히 사랑받아온 증거가 될 것이다.

2) 사용법

● 먼저 Vim-tiny가 있고 Vim-Basic이 있다.Tiny 버전은 매우 기본적인 기능만을 제공하기 때문에 추가적으로 사용자가 Basic 버전을 설치해야 한다.

설치 후 터미널에 vi 입력시 자신의 버전 확인이 가능할 것이다.

● 설치 후 에디터를 사용하기 위해 터미널에 $vifilename 형식으로 입력하면 된다. 필자는C언어를주로사용하기때문에C파일을하나만들어본다.

입력 후 다음 화면과 동일한 화면으로 이동하게 될 것이다.

여기서 아무리 뭘 눌러봐도 입력이 안된다. 대부분 이곳에서 처음 당황한다. 이것은 모드에 대해 알아야 한다.

모드 전환

출처 – http://nolboo.kim/blog/2016/11/15/vim-for-beginner/1) 일반모드(명령모드) vi를 실행시켰을 때 가장 먼저 켜지는 화면이다. 각기 다른 모드에서 esc키를 누르면 항상 일반 모드로 돌아가게 되어 있다.

2) 입력 모드(편집 모드) 실질적으로 코드 편집을 실시하는 단계이다. 왼쪽 아래를 보면 — INSERT –라고 표시되어 있는 경우에 해당한다.

3) 비주얼 모드 V나 v키로 접근하며 일반적으로 여러 행을 선택할 때 주로 사용한다. 그 외의 기능은 아직 초보자에게 필요한 것은 없을 것이다. 다른 블로그에서는 아예 비주얼 모드를 제외하고 설명하기도 한다.

4) ex모드[:] 쉼표를 누르면 모드에 입장할 수 있다. 이 모드에서는 저장, 종료, 검색, 치환을 주로 사용한다.

이를 요약하면 다음과 같은 흐름으로 실행된다.

다음부터 나오는 명령어는 모두 일반 모든 상태에서 입력한다.글을 편집하든 무엇을 하든 ESC에서 일반 모드로 돌아간 뒤 사용하면 된다.삽입 명령 i 입력 모드 전환.커서 왼쪽에 삽입된다.I 커서를 포함하는 행의 맨 첫 번째 칸에 삽입 a 커서 오른쪽에 삽입 A 커서를 포함하는 행의 마지막 글자 뒤에 추가 o 커서를 포함하는 행 아래에 추가 O 커서를 포함하는 행 위에 추가 요약하면 다음과 같다.

커서 이동 프로그래머는 보통 게으름에서 해방되기 위해 코드를 짜는 사람들이다. 따라서 타이핑을 하고 방향키로 이동하여 움직이는 시간조차 아까울 수 있다. 이 때문에 vim에서는 다른 키로 커져 이동이 가능하다.

상기 키는 자세히 보면 키보드에 양손을 올려놓았을 때 오른손 위치에 해당하는 키이다. 이처럼 사소한 것까지도 모두 키보드로 통제하겠다는 것이다.

왜냐면 잠깐만 방향키도 키보드를 이용한 통제가 아닐까?하고 의문이 생긴다.

이는 전술한 바와 같이 vi 에디터는 매우 오래되었으며, 이 당시에는 방향키가 키보드에 없었던 것이 그 이유 중 하나이다.복사, 삭제 및 되돌리기 yy 커서를 포함하는 행 복사 dd 커서를 포함하는 행 잘라내기 7dd 커서를 포함하는 행을 포함하여 아래에 총 7행 잘라내기 dw 한 단어 잘라내기 7dw7 단어 잘라내기 x 커서 위치 삭제 X 커서 앞 글자 삭제 u 반환(undo) 일반적으로 vi에도 삭제와 절취가 있다. dd와 같은 명령어를 사용할 때 클립보드에 그 행은 저장된다.

V를 누르면 들어가는 비주얼 모드의 경우 다음 사진과 같이 여러 행을 드래그할 수 있으며 복사를 한 후 붙여넣기나 여러 줄 한 번에 삭제 등이 가능하다.

빠른 이동] 다음 관수의 block 시작 지점으로 이동[이전 함수의 block 시작 지점으로 이동 0 또는 ^행의 시작 지점으로 이동 $행의 끝 부분으로 이동 gg 문서의 맨 마지막에 이동 검색, 치환 및 행 번호가 기능은 정말 많이 사용되는 것 같다. 치환은 변수명을 갑자기 바꾸고 싶을 때는 주로 사용하며, 검색은 어느 편집기로든 코드가 길어질 때는 주로 사용한다. / (찾을 내용) 찾을 내용이 있는 부분을 검색n 다음에 찾은 대상으로 이동N 이전에 찾은 대상으로 이동 %s/원래 단어/바꿀 단어를 모두 찾은 후 바꿀 단어로 바꿀 setnumber 행 번호 추가 행 번호는 또한 [ : ] 모드에서 setnumber라고 입력하면 행 번호가 생기는 것을 확인할 수 있다.

저장 및 종료 보통 창에서 문서를 편집하여 저장하지 않고 마침을 누르면 프로그램이 저장됩니까? 하고 물어서 바로 끝내주지 않았다. 이와 같이 vim에서도 :w를 이용하여 저장하지 않으면 :q에 의한 종료가 불가능하며, 이는 강제 종료이다 :q! 등을 이용하여야 한다. w저장 q 종료 wq 저장 후 종료 q! 강제 저장 후 종료 q! 강제 저장 후 종료 종합 단축키 모음

3) 리뷰●나도 요즘 시스템 프로그래밍 수업을 들으며 공부하면서 차츰 익히다가 글 쓸 겸 정리한 글이다. vim과 관련된 책도 있기 때문에 이것도 읽은 후 이 글을 조금씩 추가해 나갈 예정이다. 아마 2020년 말까지는 이글은 정기적으로 개선해 나갈 예정이다.

error: Content is protected !!