<blockquote><p style="text-align:justify;"><strong>알아두면 유용하지만 자주 까먹게 되는 Vim 명령어를 배워봅시다.</strong></p></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/1.png"><figcaption>개발 뉴비에게는 Vim을 종료하는 것부터 시련이다.</figcaption></figure><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">제가 MacOS로 처음 개발을 하면서 당황스러웠던 상황 중 하나가 바로 처음으로 Vim을 마주했을 때입니다. 터미널에서 Git 명령어를 썼는데 갑자기 뜨는 알 수 없는 글자가 화면에 떠서 종료하고 싶은데… 명령어를 몰라 나갈 수가 없었던 곤란한 상황이었죠.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">이처럼 MacOS와 같은 유닉스 계열 운영체제에서 개발하게 되면 터미널 환경에서 텍스트를 수정할 일이 많이 생기곤 합니다. 물론 요즘은 VSCode, Webstorm 같은 코드 에디터나 IDE가 잘 되어 있어서 이를 활용할 수도 있지만, 운영체제의 기본 텍스트 에디터가 Vim이다 보니 부득이하게 사용해야만 하는 경우가 있죠.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">그렇기 때문에 다른 툴을 쓴다고 해도 Vim 같은 경우는 어느 정도 사용할 줄은 알아야 합니다. 다행히 Vim에는 Vim의 기본적인 방법을 가르쳐주는 대화형 튜토리얼 프로그램인 Vimtutor가 내장되어 있습니다.</p><p style="margin-left:0px;text-align:justify;"> </p><figure class="image image_resized" style="width:80%;"><img src="https://yozm.wishket.com/media/news/2238/2.gif"><figcaption>Vim만 잘 써도 생산성이 늘어난다고 하는데 저는 아직 그 정도 경지에 이르지는 못했습니다.</figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">오늘은 Vimtutor에서 제공해 주는 튜토리얼을 한번 쭉 훑어보면서 Vim 명령어를 다시 상기해 보려고 합니다. 이번 글을 통해 <strong>Vim 사용법이 익숙하지 않은 분들</strong>에게 도움이 되면 좋겠습니다.</p><div class="page-break" style="page-break-after:always;"><span style="display:none;"> </span></div><h3 style="text-align:justify;"><strong>Vimtutor 실행하기</strong></h3><p style="margin-left:0px;text-align:justify;">Vimtutor는 Vim에 내장되어 있기 때문에 Vim이 설치되어 있다면 바로 사용할 수 있습니다.</p><p style="margin-left:0px;text-align:justify;"> </p><pre><code class="language-plaintext">vimtutor</code></pre><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/3.png"><figcaption><출처: Vimtutor, 작가 캡처></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">위 사진처럼 화면이 나오면 성공입니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h3 style="text-align:justify;"><strong>Vimtutor 따라하기</strong></h3><p style="margin-left:0px;text-align:justify;">이제부터는 Vimtutor를 따라하면서 Vim 명령어를 배워보겠습니다. 저도 직접 따라하면서 그 과정을 GIF로 캡처해 보았습니다.</p><p style="margin-left:0px;text-align:justify;"> </p><h4 style="text-align:justify;"><strong>커서 이동하기</strong></h4><blockquote><ul><li style="text-align:justify;">일반키: <code>k</code> <code>j</code> <code>h</code> <code>l</code></li><li style="text-align:justify;">방향키: <code>↑</code> <code>↓</code> <code>←</code> <code>→</code></li></ul></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/4.gif"><figcaption>이게 키보드 배열이 일자 형태라 적응이 은근 힘듭니다. <출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">커서를 상하좌우로 이동시킬 때는 <code>k</code>, <code>j</code>, <code>h</code>, <code>l</code>를 사용합니다. 저는 사실 방향키를 더 많이 쓰는 것 같긴 한데 튜토리얼이니까 이 방식대로 익혀보겠습니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h4 style="text-align:justify;"><strong>Vim 종료</strong></h4><blockquote><ul><li style="text-align:justify;">저장하지 않고 종료하기: <code>ESC</code> <code>:</code> <code>q</code> <code>!</code> <code>ENTER</code></li><li style="text-align:justify;">저장하고 종료하기: <code>ESC</code> <code>:</code> <code>w</code> <code>q</code> <code>ENTER</code></li></ul></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/5.gif"><figcaption>초보자라면 무조건(?) 알아야 할 종료하기 명령어 <출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">Vim을 종료하려면 <code>ESC</code>를 눌러 명령 모드로 빠져나온 후 <code>:</code>, <code>q</code> 를 누르면 됩니다. <code>q</code>는 <i>quit</i> 의 의미를 나타냅니다.</p><p style="margin-left:0px;text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/6.png"><figcaption>수정 사항이 있을 때는 Vim을 그냥 종료할 수 없다고 경고가 뜬다. <출처: Vimtutor, 작가 캡처></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">뒤에 덧붙여진 <code>!</code>는 명령어 강제 실행을 의미하는데요, 원래 Vim에서 수정 사항이 있을 때 종료 명령어를 입력하면 종료가 되지 않고 경고 메시지가 뜨거든요. 이것을 무시하고 강제 실행을 위해 <code>!</code>를 붙여준 것입니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">만약 저장이 필요하다면 <code>:</code> <code>w</code> <code>q</code> 명령어를 이용하여 수정된 내용을 저장할 수 있습니다. <code>w</code>는 <i>write</i> 의 의미를 나타냅니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h4 style="text-align:justify;"><strong>텍스트 삭제</strong></h4><blockquote><ul><li style="text-align:justify;">한 글자: <code>x</code></li></ul></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/7.gif"><figcaption>한 글자씩 삭제가 된다. <출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">현재 커서 위치의 텍스트를 삭제하려면 명령 모드에서 <code>x</code>를 누르면 됩니다. 한 글자씩 삭제되는 것을 확인할 수 있습니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h4 style="text-align:justify;"><strong>텍스트 삽입과 추가</strong></h4><blockquote><ul><li style="text-align:justify;">커서 앞에 삽입: <code>i</code></li><li style="text-align:justify;">해당 라인 맨 앞에 삽입: <code>I</code></li><li style="text-align:justify;">커서 뒤에 추가: <code>a</code></li><li style="text-align:justify;">해당 라인 맨 뒤에 추가: <code>A</code></li></ul></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/8.gif"><figcaption>I는 INSERT, A는 APPEND <출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">텍스트를 삽입하려면 <code>i</code>를 눌러 입력 모드로 들어간 후 원하는 텍스트를 입력하면 됩니다. <code>ESC</code>를 눌러 명령 모드로 돌아오면 삽입한 텍스트가 반영됩니다. 커서의 위치가 바뀌지 않고 텍스트가 삽입되는 것을 확인할 수 있습니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">대문자 <code>I</code>로 입력하면 커서가 위치한 라인의 맨 앞에 텍스트를 추가할 수 있습니다.</p><p style="margin-left:0px;text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/9.gif"><figcaption>이처럼 대문자와 소문자에 따라 기능이 조금씩 달라지는 경우가 많다. <출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"><code>a</code>도 <code>i</code>와 유사한데, 입력 커서의 위치가 그다음으로 이동한다는 점이 다릅니다.</p><p style="margin-left:0px;text-align:justify;">대문자 <code>A</code>로 입력하면 커서가 위치한 라인의 맨 뒤에 텍스트를 추가할 수 있습니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h4 style="text-align:justify;"><strong>파일 생성과 편집</strong></h4><blockquote><ul><li style="text-align:justify;"><code>vim 파일명</code> <code>ENTER</code></li></ul></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/10.gif"><figcaption>직접 파일 편집이 필요할 때 유용하다. <출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">터미널에서 <code>vim <파일명></code>을 입력하면 파일을 생성하고 편집할 수 있습니다. 해당 파일의 이름이 이미 존재한다면 해당 파일을 편집하고, 없으면 새로 생성합니다.</p><p style="margin-left:0px;text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/11.png"><figcaption><출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">위 명령어의 결과물로 <code>tutorial</code> 이라는 이름의 파일이 생성된 모습입니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h4 style="text-align:justify;"><strong>텍스트 삭제에 반복 적용하기</strong></h4><blockquote><ul><li style="text-align:justify;"><code>d</code> <code>대상</code></li><li style="text-align:justify;">한 단어(공백 포함): <code>w</code></li><li style="text-align:justify;">한 단어(공백 미포함): <code>e</code></li><li style="text-align:justify;">현재 커서에서 라인 마지막까지: <code>$</code></li></ul></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/12.gif"><figcaption><출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"><code>d</code>는 <i>delete</i> 를 나타내며, 삭제의 대상을 함께 지정할 수 있습니다. <code>w</code>는 <i>word</i> 를 <code>e</code>는 <i>end</i> 를 의미하고, <code>$</code>는 정규표현식에서의 문장 마지막까지를 나타내는 기호입니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">이러한 대상 범위를 잘 이용하면 단어 단위와 라인 단위로 텍스트를 삭제할 수도 있는데, 앞으로 설명할 명령어에서도 대상을 지정하는 명령어가 꽤 있으니 외워두는 것이 필요합니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h4 style="text-align:justify;"><strong>반복 적용하기</strong></h4><blockquote><ul><li style="text-align:justify;"><code>횟수</code> <code>명령</code> <code>대상</code></li><li style="text-align:justify;"><code>명령</code> <code>횟수</code> <code>대상</code></li><li style="text-align:justify;">문장 맨 처음으로 커서 이동: <code>0</code></li><li style="text-align:justify;">문장 맨 뒤로 커서 이동: <code>$</code></li><li style="text-align:justify;">한 단어 앞으로 커서 이동: <code>b</code></li></ul></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/13.gif"><figcaption>커서를 여러 단어 단위로 옮기는 모습 <출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">위에서 설명했듯이 반복 적용의 경우에는 <code>[횟수] 명령 대상</code> 또는 <code>명령 [횟수] 대상</code> 의 형태로 입력합니다. 별도의 명령어가 없는 경우에는 커서 이동에 대한 반복으로 적용됩니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h4 style="text-align:justify;"><strong>삭제에 반복 적용하기</strong></h4><blockquote><ul><li style="text-align:justify;"><code>d</code> <code>숫자</code> <code>범위</code></li></ul></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/14.gif"><figcaption><출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">삭제의 경우에는 <code>d</code>를 먼저 입력한 후 숫자와 범위를 입력해 반복적으로 적용할 수 있습니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h4 style="text-align:justify;"><strong>라인 전체 삭제하기</strong></h4><blockquote><ul><li style="text-align:justify;"><code>숫자</code> <code>d</code> <code>d</code></li></ul></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/15.gif"><figcaption><출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">라인 전체를 삭제하려면 <code>d</code>를 두 번 입력하면 됩니다. 이때 숫자를 입력하면 해당 숫자만큼 반복적으로 적용됩니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h4 style="text-align:justify;"><strong>실행 취소와 다시 실행</strong></h4><blockquote><ul><li style="text-align:justify;">실행 취소: <code>u</code></li><li style="text-align:justify;">다시 실행: <code>Ctrl</code> + <code>r</code></li></ul></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/16.gif"><figcaption><출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"><code>u</code>는 <i>undo</i> 를 의미하며, 실행 취소를 할 수 있습니다. <code>Ctrl</code> + <code>r</code>는 <i>redo</i> 를 의미하며, 다시 실행을 할 수 있습니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h4 style="text-align:justify;"><strong>복사와 붙여넣기</strong></h4><blockquote><ul><li style="text-align:justify;">복사: <code>y</code> <code>대상</code></li><li style="text-align:justify;">붙여넣기: <code>p</code></li></ul></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/17.gif"><figcaption><출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"><code>y</code>는 <i>yank</i> 를 의미하며, Vim 버퍼에 텍스트를 복사할 수 있습니다. <code>y</code> 뒤에 대상을 붙일 수도 있고, <code>y</code> <code>y</code>를 이용하면 라인 전체를 복사할 수 있습니다. <code>d</code> <code>d</code>를 이용하면 라인 전체를 삭제하여 버퍼에 저장할 수 있고요.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"><code>p</code>는 <i>paste</i> 를 의미하며, Vim 버퍼에 복사된 텍스트를 붙여 넣을 수 있습니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h4 style="text-align:justify;"><strong>텍스트 대체, 변환, 치환</strong></h4><blockquote><ul><li style="text-align:justify;">한 글자: <code>r</code> <code>대체할 텍스트</code></li><li style="text-align:justify;">대상 지정: <code>c</code> <code>대상</code> <code>대체할 텍스트</code></li><li style="text-align:justify;">현재 라인 치환: <code>:s/${찾을 텍스트}/${바꿀 텍스트}/g</code></li><li style="text-align:justify;">파일 전체 치환: <code>:%s/${찾을 텍스트}/${바꿀 텍스트}/g</code></li><li style="text-align:justify;">특정 범위 치환: <code>:${시작 라인},${종료 라인}s/${찾을 텍스트}/${바꿀 텍스트}/g</code></li></ul></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/18.gif"><figcaption><출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"><code>r</code>는 <i>replace</i> 를 의미하며, 커서가 위치한 한 글자의 텍스트를 대체할 수 있습니다.</p><p style="margin-left:0px;text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/19.gif"><figcaption><출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"><code>c</code>는 <i>change</i> 를 의미하며, 대상을 지정하여 새로운 텍스트로 내용을 변환할 수 있습니다. <code>w</code>는 한 단어를, <code>c</code> <code>$</code>는 현재 커서부터 해당 라인 마지막까지를 변환합니다.</p><p style="margin-left:0px;text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/20.gif"><figcaption><출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">텍스트 치환은 <i>substitute</i> 를 의미하며, 현재 라인 혹은 전체 문서에서의 텍스트를 치환합니다. 여기서 <code>g</code>는 <i>global</i> 을 의미하며, 범위 내의 모든 텍스트를 치환한다는 의미입니다. <code>g</code>가 없다면 처음 마주하는 텍스트만 치환합니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h4 style="text-align:justify;"><strong>특정 라인으로 이동하기</strong></h4><blockquote><ul><li style="text-align:justify;">처음으로 이동: <code>gg</code></li><li style="text-align:justify;">마지막으로 이동: <code>G</code></li><li style="text-align:justify;">특정 라인으로 이동: <code>숫자</code> <code>gg</code> 또는 <code>숫자</code> <code>G</code></li></ul></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/21.gif"><figcaption><출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"><code>gg</code>는 <i>go to</i> 를 의미하며, 처음 라인으로 이동합니다. 제일 마지막 라인으로 이동하려면 <code>G</code>를, 특정 라인으로 이동하려면 <code>숫자</code> <code>gg</code> 또는 <code>숫자</code> <code>G</code>를 입력하면 됩니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">현재 커서가 위치한 라인을 확인하려면 <code>Ctrl</code> <code>g</code>를 입력하면 됩니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h4 style="text-align:justify;"><strong>텍스트 검색하기</strong></h4><blockquote><ul><li style="text-align:justify;"><code>/</code> <code>검색어</code> <code>ENTER</code></li><li style="text-align:justify;">다음 검색 결과로 이동: <code>n</code></li><li style="text-align:justify;">이전 검색 결과로 이동: <code>N</code></li></ul></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/22.gif"><figcaption><출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"><code>/</code>를 입력하면 텍스트를 검색할 수 있는 창이 뜹니다. 여기에 검색어를 입력하고 <code>ENTER</code>키를 누르면 해당 검색어가 있는 곳으로 커서가 옮겨집니다. <code>n</code>을 입력하면 다음 검색 결과로 이동하고, <code>N</code>을 입력하면 이전 검색 결과로 이동합니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h4 style="text-align:justify;"><strong>괄호의 짝 찾기</strong></h4><blockquote><ul><li style="text-align:justify;"><code>%</code></li></ul></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/23.gif"></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"><code>%</code>를 이용하면 커서 위치의 괄호의 짝을 찾을 수 있습니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h4 style="text-align:justify;"><strong>외부 명령 실행하기</strong></h4><blockquote><ul><li style="text-align:justify;"><code>:</code> <code>!</code> <code>명령어</code></li></ul></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/24.gif"><figcaption><출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"><code>:</code> <code>!</code>를 입력하면 외부 명령을 실행할 수 있습니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h4 style="text-align:justify;"><strong>새 라인 추가하기</strong></h4><blockquote><ul><li style="text-align:justify;">현재 라인 아래에 새 라인 추가: <code>o</code></li><li style="text-align:justify;">현재 라인 위에 새 라인 추가: <code>O</code></li></ul></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/25.gif"><figcaption><출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"><code>o</code>는 <i>open</i> 을 의미하며, 현재 라인 아래에 새 라인을 추가합니다. <code>O</code>는 현재 라인 위에 새 라인을 추가합니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h4 style="text-align:justify;"><strong>치환 모드</strong></h4><blockquote><ul><li style="text-align:justify;">치환 모드로 전환: <code>R</code></li></ul></blockquote><p style="text-align:justify;"> </p><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/26.gif"><figcaption><출처: Vimtutor, 작가 편집></figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"><code>R</code>는 <i>replace</i> 를 의미하며, 치환 모드로 전환합니다. 치환 모드에서는 텍스트를 입력하면 기존 커서 위치의 텍스트가 대체됩니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"> </p><h3 style="text-align:justify;"><strong>마치며</strong></h3><figure class="image image_resized" style="width:100%;"><img src="https://yozm.wishket.com/media/news/2238/27.png"><figcaption>뭔가 원소 주기율표를 보는 듯한 기분</figcaption></figure><p style="text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">이처럼 Vimtutor을 이용하면 간단한 Vim 사용법을 배울 수 있습니다. 다만 Vim에서 제공하는 기능이 워낙 많다 보니, 이번 글에서는 텍스트 편집 기능에만 초점을 맞춰 필요한 기능만 다루었고 이해를 돕기 위해 등장 순서도 조금 바꾸었습니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">사실 Vim을 익히는 가장 좋은 방법은 <strong>직접 사용해 보는 것</strong>입니다. Vim에서 제공하는 모든 기능들을 알고 쓰기는 어렵기 때문에, 인터넷에 공유된 <a href="https://vim.rtorr.com/lang/ko">치트 시트</a>를 복사해 두고 필요할 때마다 참고하는 것이 가장 좋은 방법일 듯합니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;">Vim을 대충 쓸 줄은 알았지만 이렇게 다시 한번 설명을 읽어보니 모르는 기능들을 다시 떠올릴 수 있어서 좋았습니다. 혹시나 아직 Vim 사용법이 낯선 분들이 있다면 한 번 Vimtutor 맛보기라도 해보시길 추천합니다.</p><p style="margin-left:0px;text-align:justify;"> </p><p style="margin-left:0px;text-align:justify;"><원문></p><p style="margin-left:0px;text-align:justify;"><a href="https://wormwlrm.github.io/2023/04/16/Learn-Vim-with-Vimtutor.html">Vimtutor를 이용해 Vim 명령어를 배워보자</a></p><p style="margin-left:0px;"> </p><p style="margin-left:0px;text-align:center;"><span style="color:#999999;">요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.</span></p>