Emacs로 나만의 워크플로우 구성하기
$ whoami
오늘은 Emacs에 대해 이야기해 봅시다.
GitHub: @RangHo
Instagram: @rangho_lee
RangHo/dotfiles@f7da34d)RangHo/dotfiles@59ed40f)최근 IDE의 필요성이 점점 더 낮아지는 중
"이래서 Visual Studio Code는 혁신이야!"
"그거 Emacs는 20년 전부터 지원하던 건데…"
(list 1 2 3) ; -> '(1 2 3)
이런 확장성을 떠나서, 기본값 Emacs에는 치명적인 단점이 있는데…
Emacs는 modifier 키를 매우매우 적극적으로 이용하는 편…
M-xC-x C-fC-x C-sC-x C-cC-u 20 C-x eControl 키와 Caps Lock 키를 바꾸는 것은 필수!
하지만 그렇더라도 새끼손가락이 너무 많이 쓰인다…
Vim의 modal editing은 굉장히 잘 설계한 편!
h, j, k, l 모두 손에서 가장 힘이 센 손가락에 매핑되어 있음그러면 Vim 거를 훔치자!
Evil (Extensible Vi Layer)
현존하는 가장 완벽한 Vi(m) 모달 에디팅 구현체
Vim의 모든 주요 기능을 지원함
이 모든 기능과 Emacs Lisp의 확장성이 더해지면…
기존 Emacs 기능과 Vim의 모달 에디팅을 결합한 예시로…
evil-modegod-mode<leader> x f는 C-x C-f와 같다
이 둘을 섞으면 hades-mode!
예를 들어, treemacs에서 "Personal" 워크스페이스 안에 다른 프로젝트를 추가하려면…
C-c RET C-c C-w s personal TAB RET C-c C-p a new-project RET, c RET , c w SPC s personal TAB RET , c p SPC a new-project RET
evil-mode는 개발 속도를 향상시켜주는 minor mode 중 하나
magit은 Git을 사용하는 개발자라면 필수적으로 사용해야 하는 major mode 중 하나
다른 에디터에서도 Git 클라이언트는 있다!
fugitive.vim
하지만 magit에 비하면…..
백문이 불여일견이다! magit으로 아래 레포지토리를 만들어보자!
org-mode는 기본적으로 마크업 언어!org-mode는 major mode!magit과 달리, 파일 편집을 담당하는 major modeorg-agenda)treemacs-edit-workspaces)
org-mode로 작성한 텍스트는 얼마든지 다른 포맷으로 내보낼 수 있다!
ox-ascii)ox-latex)ox-html)ox-md)ox-odt)ox-man)
모든 내보내기 백엔드는 ox 내보내기 엔진을 기반으로 작성된 것!
ox-hugoox-svelteimport할 수 있도록 문서를 Svelte 컴포넌트로 변환여기저기서 사용하는 문법을 하나로 통합할 수 있다!
메모 상자 기법으로 작성한 노트를 네트워크에 공유하거나 백업하는 것을…
여기서 org-mode의 ID 링크를 이용한 메모 상자 프로그램이 org-roam!
Emacs가 다른 에디터에 비해서 진입장벽이 높은 것은 사실
Spacemacs는 Emacs에 evil-mode를 포함한 여러 패키지가 미리 설치된 배포판
Vim에 익숙한 사람이라면 에디팅 방식에는 금방 적응할 수 있다!
다만 Spacemacs에 너무 익숙해지면 정작 Emacs에서 제공하는 막강한 기능을 전부 활용하기 힘들 수도 있으니 주의.
기본적으로 Emacs를 설치하면 다른 에디터처럼 메뉴를 포함한 UI가 제공됨!
*Help* 도움말 페이지customize 설정 GUIGUI의 도움을 받아가면서 기본적인 사용 방법에 익숙해졌다면, 추천하는 스타터 설정을 적용해보자!
나에게 맞출 수 있는 에디터가 무엇이 있을까?
결국 어디로 돌고 돌아도 결론은 Emacs.
배포판에 구애받지 않는 바닐라 Emacs!
원래 설정 파일은 기능 하나당 파일 하나로 구분…
현재는 literate programming 방법을 이용해서 org-mode로 코드 작성 중