IdeaVim에서 사용가능한 Plugin 정리

Harry The Great
해리의 유목코딩
5 min readDec 16, 2019

이번 블로깅 내용은 IdeaVim에서 현재 사용 가능한 플러그인이기 때문에 IdeaVim에 대한 설명은 나와있지 않습니다.

이전부터 Vim으로 개발하셨던 분들이라면 많은 플러그인을 사용해보셨겠지만.. 저처럼 우연히 드로나이츠 행사 때들은 세션으로 Vim을 사용하셨던 분들이라면 플러그인이 다소 생소할 수 있습니다. IdeaVim이란 Jetbrain 계열의 IDE에서 Vim을 사용할 수 있도록 해주는 플러그인입니다.
플러그인 형태의 vim이다 보니 기존 vim과는 조금 다른데 내가 원하는 vim 명령어가 구현되어있는지를 확인하고 싶다면 링크를 클릭하여 실제 vim과 대응하여 구현이 되었는지 안되었는지를 확인할 수 있습니다.

근래 개발하며 가장 큰 도움이 됬던 세션

위 세션을 듣고 나서 Vim을 사용하기 시작했는데 당시만 해도 IdeaVim에서 surround 이외에는 딱히 제공되는 플러그인이 없었습니다. 현재는 4개를 제공하고 곧 2개가 더 추가될 예정입니다.

vim-easymotion

깃헙페이지

사용법

Ideavim 이외에 IdeaVim-EasyMotion, AceJump플러그인을 설치해야 하고 하단 내용을 ideavimrc 파일에 추가해주세요.

# ~/.ideavimrc
set commentary

위 화면에서는 \\w를 이용해서 현재 커서 이후로 모든 단어의 시작점을 단축키로 나타내 줍니다. 원하는 곳에 맞게 키보드를 입력해준다면 하이라이트 된 곳으로 이동합니다. 일반 모드에서 ‘w’는 다음 단어의 앞이기 때문에 커서 기준 대응되는 모든 단어의 앞에 내비게이션 단축키가 생성됩니다.

만약 \\w 대신 \\b를 입력한다면 b는 이전 단어의 앞이기 때문에 커서 기준 모든 word의 시작 위치가 단축키로 만들어집니다. \\b를 입력한 후 원하는 단어 예를 들어 s를 입력하면 s로 시작되는 단어만 활성화됩니다. word와 관련된 명령어 이외에도 bjkl 등 다양한 모션 명령어와 조합해서 사용할 수 있습니다.

easy-motion은 생각보다 단축키가 상당히 많은데 모든 easy-motion 단축어가 가능하지는않고 플러그인 페이지에서 언급된 내용만 사용가능합니다.

vim-commentary

깃헙페이지

사용법

# ~/.ideavimrc
set commentary

일반 모드에서 gcc나 비주얼 모드에서 gc를 이용해서 선택영역을 코멘터리 처리할 수 있습니다. gc + motion 명령어도 가능하기 때문에 단어만 주석화하거나 원하는 줄만큼 주석 처리할 수 있습니다.

multiple cursors

깃헙페이지

사용법

# ~/.ideavimrc
set multiple-cursors

비주얼 영역 혹은 현재 커서 위치와 매칭 되는 단어를 선택하여 여러 개를 동시에 선택할 수 있습니다. <Alt> + N키를 이용하여 시작하며 <Alt> + N 다음 단어 선택, <Alt> + P 이전 단어, <ALT> + X 현재 단어 스킵입니다. 기존 라이브러리에서는 Ctrl 키와 맵핑되었지만 단축키가 겹치는 문제점 때문에 Ideavim에서는 Alt 키와 맵핑되어있습니다.

문제는 Mac에서 ALT + 알파벳이 알파벳 특수문자로 나온다는 문제인데 혹시 이러한 문제 때문에 키가 작동을 안 한다면 Engliash 키보드가 아니라 Unicode 키보드로 변경하셔야 합니다.

surround.vim

깃헙페이지

사용법

# ~/.ideavimrc
set surround

surround vim은 괄호나 혹은 따옴표 등을 변경할 때 매우 유용합니다.

ys + [모션 명령어 ]+ [추가할 괄호 혹은 따옴표]를 사용해서 괄호를 만들 수 있습니다. 위 화면에서는 ys 이후 hello [space] world 3개를 선택하기 위해 3w 그리고 추가할 따옴표 “를 입력하였습니다.

괄호를 변경하고싶다면 cs + [기존괄호 혹은 따옴표] + [변경할괄호 혹은 따옴표]

삭제를 하고싶다면 ds + [삭제할 괄호 혹은 따옴표] 형태로 사용할 수 있습니다.

--

--

Harry The Great
해리의 유목코딩

Android & IOS Developer 😀 미디움 이외에 스니펫이나 디버그노트로 활용하는 https://www.harrymikoshi.com/ 블로그도 운영하고있습니다.