스페이스맥스에서 둠이맥스로 갈아탐

ES6+ 기반의 컴포넌트를 작성하는 것 뿐이었는데 WebStorm, VSCode, Spacemacs… 모두 사용할 수 없을 정도로 느려진다. 프로젝트 구성 파일의 사이즈가 제법 큰 사이즈이지만 따로 콤포넌트 루트는 고작해야 파일 6개 뿐인데 이해할 수 없는 반응이었다. 

 

JVM 기반 WebStorm은 느려지는 원인을 잡아내기란 또 하나의 ‘프로젝트’에 가깝다. 짜증나는 클릭질, 어디에서 뭐가 영향을 주는건지 도무지 알수도 없고 알고싶지도 않다.  VSCode는 왜 또 그런데… 덩달아서 느려진다.  브라우저 기반이라 어쩔 수 없나보다 하고 포기하고 Spacemacs로 코딩하려니 이건 뭐.. 셋다 모두 태업을 하는건지 도무지 이해할 수 없는 현상… 결국 급한김에 vim으로 마무리했지만 받쳐오르는 짜증때문에 그동안 손도대지 않으려했던 Doom Emacs1https://github.com/hlissner/doom-emacs를 건드려 보기로 했다.

 

Spacemacs에 길들여진 후라서 Doom Emacs의 단축키 호출 설정은 가장 큰 장애물이었다. SPC f e d  대신에 SPC f p , treemacs 설정도 모르겠고, SPC SPC 두번 호출에 의해 명령어로 검색하는게 아니라 M-x 로 호출한다. 반응이 돌에 걸려 넝어졌다가 일어나는 꼴 모냥스럽게 느리다. 뭔가 맘에 안든다. 

 

React 코딩을 위한 환경으로 설정했는데도, 일단 어플 자체가 뜨는 시간은 아주 빠르다. 일단 기동 후에 지연된 로딩을 하기 때문에 동작한 직후에는 반응이 더디다. 그래도 Spacemacs에 비하면 개인택시로 미터기 내린상태에서 총알택시 코스탄 정도로 빠르다.  ~/.spacemacs 파일을 고치던 것과 달리 총 3개의 파일로 나눠져 설정한다.

  • ~/.doom.d/init.el  — spacemacs의 layer에 해당한다
  • ~/.doom.d/config.el — spacemacs의 user-config 함수에 해당한다
  • ~/.doom.d/package.el — addtional-packages 함수에 해당한다

 

부팅하기전에 설정에 따른 필요한 사항을 미리 컴파일시켜둬야 한다.  설정을 변경한 경우는 Emacs를 재시작 하기만 하면 된다. 패키지를 추가했다면 반드시 설정을 동기화 해야한다. Emacs 어플 자체의 버전이 바뀐경우에도 doom sync를 해줘야 한다. develop 브랜치를 사용중인데 git pull 로 변경사항을 적용한 후 doom sync 또는 upgrade를 통해 변경사항을 적용하는걸 잊지 말자:

  • ~/.emacs.d/bin/doom sync 

 

 

설정에 따른 로딩하는 패키지의 수는 Spacemacs에 비해 3배정도 차이가 난다.  도대체 Spacemacs는 뭘 그리도 많이 읽어들이는지… 하지만 결국 주된 사용처는 React/ESLint/TypeScript 코딩이라서 설정은 별반 다를게 없다. 대신 eslint_d 를 적용하고 Tide 대신 LSP로 대동단결하는 분위기다. 

 

Emacs는 27버전을 사용한다. 28은 언제 릴리즈될지 알수없고, 26은 JSX 지원이 내장되어 있지 않다.  js2-mode 가 아닌 rjsx-mode를 쓰라고 하는데, 빌어먹을 모드 구분은 아직도 힘들다. Flycheck에다 flycheck-inline-mode를 반드시 써주자. 그렇지 않으면 발랄하게 팝업창이 죽어라 뜬다. 

 

ESLint에 auto-fix는 껐다. 내가 알아서 고칠께, 넌 조언만 해라는 설정이다.  TypeScript Hint는 어지간하면 필요할 때 뜨게한다. 스토커마냥 커서 지나가는 길목마다 나타나지 말란말이다.   혹시라도 맛이갈 경우를 대비해 VSCode Insider에도 적절히 설정해준다. 패키지를 모두 없애버리고 VIM + ESLint 만 동작하게 해두었다.  그러고선 비상대피용으로 vim-plug를 사용해서 VIM 도 새단장을 해주었네. (근데 왜 expandtab이 자꾸 풀리냐고!!!)      이걸 윈도우쪽에도 적용해야하는데,,,

References   [ + ]

1. https://github.com/hlissner/doom-emacs