에디터 전쟁

3개의 텍스트 에디터를 사용하고 있다. Vim으로만 모든 문자열 편집을 할 수 있으리라는 기대는 빗나갔다. 우분투에서 맥으로 넘어오면서부터 Vim을 사용하는데 문제가 생겼다.

한글 입력

Vim에서는 한글 입력 중에 esc를 누르면 insert mode를 벗어나는 것이 아니라, 커서가 다음으로 넘어간다. 우분투를 쓸 때는 이런 문제가 없었기 때문에 입력기 문제인 것 같아서 구름입력기로 바꾸어봤으나 똑같았다. 구름입력기 옵션에 esc를 누르면 영문으로 자동 전환되는 기능이 있다. 개발자가 Vim 유저라서 넣은 기능이라는데, 한글을 입력하다가 esc를 누르면 insert mode 상태는 유지된 채 영문으로만 전환된다. 그래서 normal mode로 나가고 싶을때 현재 입력 소스에 따라서 esc를 눌러야 하는 횟수가 다르다.

VSCode와 Atom에서는 한글 입력에 문제가 없다. 다만 VSCode의 Vim-mode 플러그인에 문제가 있는데, 한글 조합을 완성해야 글자가 입력되고, 조합 전까지 이전 문자를 덮어 씌운다.

Intellisense

Intellisense는 객체의 멤버변수와 메소드 목록, 파라미터와 반환값에 대한 정보를 코드를 입력하는 중에 제공해주는 기능이다. 단순히 자동완성을 넘어서 내가 지금 입력하고 있는 객체 혹은 함수가 어떤 것을 할 수 있는지 알려준다. 대부분의 IDE에서는 기본으로 지원하는 기능이다.

VSCode에서는 별 다른 설정없이 Javascript Intellisense를 지원한다. 내장된 TypeScript definition을 이용하기 때문인데, 익스텐션을 설치하면 다른 언어도 지원한다.

Atom과 Vim에서는 ternjs를 사용해서 intellisense를 사용할 수 있다. VSCode만큼 자세하게 표시해주지는 않는다.

생산성

나에겐 그동안 써왔던 게 있기에 Vim이 다른 두 에디터보다 생산성이 압도적으로 높다. 하지만 대부분의 에디터나 IDE에는 Vim-mode나 Vim-keymap이 있어서, 타협 가능한 부분이다.

그래서 뭐 쓸껀데

원래는 버전관리등 몇 항목을 더 비교하려 했는데, 글을 쓰면서 이것저것 테스트 해보니까 세 에디터 모두 만족스럽게 잘 작동하는 것을 확인했다. 사용의 편의성은 VSCode > Atom > Vim 순으로 높으나, 개인적인 사용 패턴에 맞춰볼 땐 Atom > Vim > VSCode 순이 되었다.

한동안은 Atom과 Vim을 병행해서 쓰다가, Vim에서 한글입력이 완벽해지거나 Atom이 Vim만큼 익숙해지면 단일화해야겠다.