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

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

1 ) ViI ? VIM ?

● VIM은 vi_Improved의 준말로 VI 에디터에 편리하고 강력한 기능을 추가한 에디터이다. 대부분의 리눅스 벳포판은 기본 에디터로서 VIM이 설치되어 있으며 VI 명령으로 alias되어 있다. 즉, VI를 실행하면 자동으로 VIM이 실행된다.

그럼 이런 에디터는 왜 사용할까? 기존 GUI 환경의 VS code 등이 편하지 않은가?

키보드만으로 모든 것을 해결할 수 있다.처음에는 어렵지만 적응해서 사용해 보면 그 효율성이 매우 뛰어난 에디터이며 모든 리눅스에 설치되어 있기 때문에 매우 간단하다.또 마우스가 전혀 필요 없기 때문에 노트북 하나만 만들면 모든 것을 해결할 수 있다.

2) 최초에 만들어졌을 당초는 GUI 환경이 발달하지 않았다.이는 그만큼 에디터가 오래됐다는 뜻이다. 리눅스 내에서 사용되는 에디터의 랭킹 조사 결과 vim이 압도적 1위를 차지하는 것 또한 사랑받는 증거가 될 것이다.

2) 사용법

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

설치 후 터미널에 vi 입력하면 자신의 버전을 확인할 수 있다.

● 설치 후, 에디터를 사용하므로 터미널에 $vifilename 형태로 입력하면 된다. 필자는 C언어를 주로 사용하므로 C파일을 하나 만들어 보자.

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

여기서 아무리 뭘 눌러도 입력이 안 돼 대부분 여기서 처음 당황한다. 이거는 모드에 대해서 알아야겠다

모드 전환

출처 – https://nolboo.kim/b log/2016/11/15/vim-for-beginner/1) 일반모드(명령모드) vi를 실행시켰을 때 처음 시작하는 화면이다. 각각 다른 모드로 esc 키를 누르면 항상 일반 모드로 돌아가게 되어 있다.

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

비주얼 모드 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 문서의 마지막으로 이동G 문서의 마지막으로 이동검색, 치환 및 행 번호 기능은 정말 많이 사용하고 있는 것 같다. 치환은 변수명을 급하게 바꾸고 싶을 때 주로 사용하고, 검색은 어떤 에디터든 코드가 길어질 때 주로 사용한다./(찾는 내용) 찾는 내용이 있는 부분을 검색 n 다음에 찾은 대상이고, 이동 N 이전에 찾은 대상에서 이동 %s/원래 단어/바꾸는 단어를 모두 찾은 후 바꿀 단어로 바꾸는 set number 행 번호 추가 줄 번호는 다시 [:] 모드로 set

저장/종료 플레인 창에서 문서를 편집한 후 저장하지 않고 종료를 누르면 프로그램을 저장합니까? 라고 물으면서, 금방 끝내 주지 않는다. 이와 같이, vim에서도 :w 를 이용하여 저장하지 않으면, :q에 의한 종료가 되지 않으며, 이는 강제종료인 :q! 등을 이용할 필요가 있다.w보존q종료 wq 저장후종료 (저장하지 않음) wq!강제보존후종료 (저장하지 않음) wq!강제저장후종료된 종합 바로가기 키집

후기●나도 요즘 시스템프로 글래밍 수업을 받으면서 공부하면서 차근차근 익혀가면서 하나 써볼 겸 정리한 글이다. vim에 관한 책도 있으므로 이것도 읽은 후, 이것을 조금씩 추가해 나갈 예정이다. 아마 2020년말까지는, 이 기사는 정기적으로 개선될 예정이다.

error: Content is protected !!