Vim 생태계에는 surround 라는 플러그인이 존재한다. 이는 vim 에서 괄호를 컨트롤할 수 있는 강력한 기능을 제공한다. https://github.com/tpope/vim-surround GitHub - tpope/vim-surround: surround.vim: Delete/change/add parentheses/quotes/XML-tags/much more with ease surround.vim: Delete/change/add parentheses/quotes/XML-tags/much more with ease - GitHub - tpope/vim-surround: surround.vim: Delete/change/add parentheses/quotes/XML-tags/much mor..
이번 시간에는 Vim 에서 어떻게 '찾아 바꾸기'를 하는지 알아보도록 하자. 'Vim 에서 찾기' 기능은 앞선 '기본조작'편에서 이미 알아보았다. '찾기'는 [The Vim Way] 09 Vim 기본조작 - Vim 문자열 찾기 편에서 알아볼 수 있다. Vim 찾아 바꾸기 요즘 IDE 또는 텍스트에디터에서는 '찾아 바꾸기'는 매우 기본적으로 탑재되어있는 기능 중에 하나이다. 특히 jetbrains 계열의 IDE 에서는 정규표현식, 대소문자 구분 여부, 단일 단어 여부에 따라 찾기 및 찾아바꾸기 기능을 지원한다. 즉, vim 에서 제공하는 찾아바꾸기를 굳이 이용할 이유가 없는 것도 사실이지만, original vim 을 이용해야하는 상황이거나, 범위를 지정하여 찾아바꾸기를 진행해야 하는 경우 등의 상황이라면..
드디어 Vim 의 궁극기 Macro 를 살펴볼 차례다. Vim 매크로 Macro 는 Vim 명령어'들'을 기록하고, 이를 반복할 수 있는 기능이다. 이전에 Vim Micro Macro(dot command)를 활용해서 이전 명령을 바로 반복할 수 있었다. 그러나, 이는 이전 명령을 반복할 뿐, '이동 후 명령' 과 같은 작업에 대해서는 그 반복이 불가능하다. 매크로가 필요한 순간 가령 다음 스크린샷의 좌측과 같은 코드가 있다고 가정해보자. 이를 오른쪽 코드와 같이 바꾸고자 한다. javascript 에서 key 를 그대로 value 에 넣은 뒤 이를 대문자로 바꾸려고 한다. 일단, jazz 가 포함된 라인(2번줄)에서 vim 을 활용하여 이 과정을 진행해보자. 다음과 같이 기존 코드를 변경할 것이다. /..
viEmu VIM Cheat Sheet Vim Cheat Sheet 라고 검색해보면, 많은 자료가 나오는데, 그 중 가장 눈에 띄는것은 다음 치트시트일 것이다. viEmu Cheat Sheet 는 키보드의 모든 키스트로크에 의미를 적어놓아, 한 눈에 Vim 의 모든 기능을 파악하기에 용이하다. 또한, 7 스테이지로 Vim 을 차근차근 학습할 수 있도록 그 중요도와 목적에 따라 기능을 구분해놓았다. 이 포스팅에서는 7개의 각 Lesson 의 주요 내용을 정리함과 동시에, 본 연재의 관련 링크를 걸어두었다. http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html Graphical vi-vim Cheat Sheet and Tutorial Graph..
Vim 에서 되돌리기(undo)와 재실행(redo) Vim 에서는 '되돌리기' 동작을 Normal Mode 의 `u` 키로 수행할 수 있다. `u`를 입력하는 순간 직전에 수행했던 명령들이 되돌려진다. 다음 스크린샷은 되돌리기 및 재실행 동작이 어떻게 수행되는지를 보여준다. 먼저 숫자 100을 200으로 바꾼 뒤, `+=` 연산자를 `-=` 으로 변경하고, sum 변수명을 total 로 변경하는 과정을 진행한 뒤, 되돌리기(`u`)와 재실행(`ctrl + r`)을 수행한 장면이다. Vim 되돌리기와 명령블록 Vim 에서 되돌리기를 할 때에는 '명령 블록' 단위로 되돌리기가 수행된다는 점이 중요하다. 우리가 일반 에디터에서 Ctrl + z 로 되돌리기를 하던 것과는 그 느낌이 다르다. 이 명령블록을 이해하..
Vim n번 명령 반복하기 Normal 모드에서 숫자를 입력한다는 것 Vim Normal Mode 에서 숫자를 입력하면 상태표시줄에 숫자가 입력되는 것을 확인할 수 있다. 이것은 이렇게 입력된 숫자 이후에 입력되는 명령이 반복될 횟수를 지시한다. 이런 방식으로 Vim 에서는 대부분의 명령어를 n회 반복할 수 있다. 명령어를 수행하기 전에 숫자를 미리 입력하고 명령을 수행하면, 해당 명령이 입력한 숫자만큼 반복되는 것이다. 붙여넣기 반복하기 다음 예제는 한 줄을 복사하여 13회 붙여넣는 예제이다. 붙여넣는 명령어 `p` 앞에 13을 먼저 타이핑했고, 실제로 `p` 명령어가 13회 수행되는 것을 확인할 수 있다. 줄 삭제 반복하기 5줄을 연이어 삭제하고자 할 때는 어떻게 할지 상상해보자. 가장 직접적인 방법..
Vim Micro Macro Vim Normal Mode 에서 이동 명령을 제외한 대부분의 명령은 하나의 '명령 블록'이다. 이 '명령 블록'은 재실행이 가능하다. 이전에 수행한 명령을 그 즉시 반복하고자 할 때, Micro Macro 를 활용하면, 키 입력 하나로 그 명령을 반복할 수 있다. Micro Macro 는 Normal Mode 에서 .키를 입력하는것으로 수행이 가능하다. 이전에 무엇을 행했듯, 그것은 Vim 에게 하나의 명령이고, 그 명령을 그대로 재실행하는 것이 Vim Micro Macro - Vim 마이크로 매크로다. 사실 거의 모든 명령에 대해 Micro Macro(Vim 점 명령어) 가 적용되기 때문에, 모든 예시를 다루기는 어렵고(사실 불가능하고) 여기서는 몇가지 코딩에 도움이 될만..
현대 텍스트 에디터는 모두 찾기 기능을 갖고 있다. 윈도우 기준으로 보통 F3 이나, Ctrl + F 로 찾을 수 있고, 바꾸기는 Ctrl + R 단축키로 대부분 실행된다. Vim 에서도 찾기 기능을 제공한다. Vim 문자열 찾기 vim 에서 문자열을 찾는 방법은 2가지다. 커서 다음 부분을 찾아갈지, 커서 이전 부분을 찾아갈지에 따라 두 가지로 나뉜다. / - 다음 문자열 찾기 /{찾을 문자열} - / 키 입력 후 '찾을 문자열'을 입력하여 현재 커서 다음에 나타나는 '찾을 문자열'로 커서를 이동시킬 수 있다. Normal 모드에서 / 를 입력하면 하단 Status Bar 에 그대로 / 가 표시되는 것을 확인할 수 있다. 이 때, 찾기를 원하는 문자열을 써 넣으면 된다. 찾기를 수행하면 에디터는 해당 ..
Vim 특정 문자로 커서 이동하기 이번에는 f, F, 't', T' 키를 활용해서 한 줄 안에서 특정(지정한) 키로 이동할 수 있는 방법을 알아본다. 앞서 살펴보았듯, 문자 단위로 한 글자씩 좌, 우로 이동할 수 있었는데 h, l 로 가능했다. 단어 단위로 점프하고자 할 때는 w, W, b, B, e, E 등을 활용했다. 그러나 때로는 단어 단위가 아니라 '특정 문자까지'를 명령의 대상으로 삼고싶을 때가 있다. 다음 코드를 보자. Calculator c2 = new CalculatorDecoMinus(); // 주석만 남기고 싶다면? ↑ 커서는 C 위치에 있다고 가정 현재 커서가 맨 첫번째 문자 - C 에 있다고 가정하자. 이 때, 주석만 남기고자 한다면 어떻게 할 수 있을까? 한번 생각해보자. 다양한 ..
Vim Visual Mode Vim 에서 블록을 씌우고 싶을 때 사용하는 것이 Visual Mode 이다. Visual Mode 를 활용하면 다음 스크린샷과 같이, 텍스트에 블록을 씌울 수 있다. 이렇게 Visual Mode 로 블록을 씌운 뒤 특정 명령어를 통해 해당 문자열들을 컨트롤 할 수 있다. 블록을 씌운 뒤 해당 부분을 복사, 지우기, 대체하기 등 다양한 동작을 수행할 수 있는데, 이후에 배울 명령어들과 조합하면 사실상 수행할 수 있는 동작은 수백가지(어쩌면 수천가지)에 이를 수도 있겠다. Vim Visual Mode 는 다른 동작들과 조합되어 사용되는 경우가 많기에, 이 포스팅에서 소개한 Visual Mode 의 사용법은 한정적인 것임을 인지하고, 추후에 Vim Visual Mode 와 함께 ..
컴퓨터의 세계에서 Copy & Paste 의 개념만큼 대중적인 것도 없을테다. ctrl + c, ctrl + v 는 마치 대명사처럼 우리에게 흔한 일상이 되어버렸다. copy & paste 라는 개념이 래리 테슬러가 1973~1976 년 무렵에 발명했고, 이게 유명해진게 1978년 발매된 WordPerfect덕분이라고 한다(참조, 글에서 소개한 WordStar 는 복붙이 다른키인듯 하다). , Vim 의 아버지격인 Vi 에디터가 1976 년에 개발되었기에, ctrl + c, ctrl + v 를 활용한 복붙 개념이 대중화되지 않은 시점이라 왜 vi 에디터에서 ctrl + c, ctrl + v 가 복사-붙여넣기가 아닌지는 이해가 된다. 아무튼, 궁금하지 않았을지도 모르지만 왜 vi 의 복사 붙여넣기는 괴상하..
Normal Mode 오퍼레이터(모션 지정 명령)에 대한 이해 앞서 Vim Normal Mode 에서 커서를 이동시키는 방법과, Vim Insert Mode 로 진입하는 방법을 알아보았다. 이번에는 Normal Mode 의 기본 명령들에 대해서 알아보도록 한다. 💡 이번 포스팅은 다분히 이론적일 수 있다. 하지만, Normal Mode 에서 명령어가 동작하는 원리를 이해하고 나면 훨씬 자유롭게 해당 명령어들을 응용할 수 있을 것이다. 이 포스팅이 [The Vim Way] 연재 중 가장 어려운 부분일 수 있지만, 당장은 본 포스팅의 스크린샷만 훑어보도록 하자. 구미가 당긴다면, 어렵더라도 꼭 이해하고 넘어가보도록 하자. 이 포스팅을 이해하고 나면 다음 명령어들을 활용할 수 있게 된다. c - 모션을 활용하..