😱 Emacs 일기: vi-mode은 그만 쓰고, windmove은 쓰기 시작
vi emulation-layer: evil-mode을 그만 쓰게됐다
이맥스는 거의 20년 넘게 써온거 같다. 물론 예전엔 지금보다 훨씬 더 제대로 이해하고 쓰진 못했었다.🥟 그리고 evil-mode-도 10년 넘게 써온거 같다.
이맥스를 다시 메인으로 계속 써오면서, 처음엔 Spacemacs / doomemacs 같은 preconfigured된 것들을 적용해 쓰면서 익숙해져 갔던거 같다. (이미 Vi/Vim은 계속 써오고 있었으니까)
그런데 계속해서 뭔가 키바인딩이 이상하다는 느낌을 받아온거 같긴하다. 그도 그럴것이, 좀 다른 major-mode마다 다른 키바인딩을 vi/vim스럽게 맞춰주는 evil-collection-으로 맞춰주며 동작하는데, 이게 항상 좀 일관성이 있기는 어려운 것 같았다.
예를 들어, magit, eshell, sly/slime 특히 realgud 같은 모드들이랑은 evil-mode이 불편했었다.
그러다가 문득 아예 evil-mode을 끄고 기본이맥스 키바인딩만으로, 그걸 조금 확장해서 쓰기 시작했는데, 오히려 가볍고 좋았다. 어차피 이맥스 키바인딩 자체는 이미 오랬동안 익숙해져 온 것이니까.
가장 불편한 점은 normal-mode / insert-mode 구분이 없어서 언제든 무슨키가 입력되면 바로 버퍼가 편집된다는 근거없는 Vi/Vim중독증상이다. 🫠
아마 앞으로도 계속 이렇게 쓸거 같다. 그래도 정말 vi/vim-keys이 필요하면 그때 toggle해서 evil-mode을 쓰거나, emacs에 내장된 viper-mode을 써도 될테니까…
Emacs 기본키바인딩 + 조금씩 확장해서 쓰기: hydra, which-key
evil-mode 🙈 + general.el1 ⭐ -으로 예전엔 다른 emacs-layers들처럼 쓰려고 하다가 내겐 더 불편했다.
그래서 그냥 대부분은 이맥스 키바인딩에 만족하고, 또 계층으로 키바인딩을 나눌 때엔 defhydra-으로 정의해서 쓰고 있다. 이렇게 하는게 나는 더 편안하다.
(이 이맥스 패키지들은 어째서 다 이모양일까 싶다.)
창선택/이동: ace-window + windmove도 사용 편하다
이맥스를 쓸 때에, 한 frame/tab 안에서, 여러 window으로 나눠서 코딩을 하거나 해왔는데, 이것도 꽤 불편하게 써오던 것 같다.
evil-mode을 사용하면, Vim스럽게, Control-W h/j/k/l 같은걸로
윈도포커스전환이 쉬웠는데, 이게 없어져서 C-x o /
ace-select-window 쓰니까 매번 창번호 눌러줘야 하고 좀 그랬다.
그래서 좀 알아봐서, emacs 내장 windmove을 키바인딩해서 방향키조합으로 바로 움직일 수 있도록 했다. 좀 편해졌다.
Footnotes
“leader”-key을 제공하니까… “장군님.el”이라고 프로젝트 설명에. 쿨럭.