"이맥스는 사용자와 함께 진화하는 에디터다"
- 야이미친
<이맥스 개종 가이드>
일단 간단한 셋업을 해봅시다
일단 순정 이맥스 자체는 핵폐기물이라 그 상태로 오래 남길수록 본인의 수명이 줄어들 수 있음
이맥스에서 모든 명령은 M-x <command> 형태로 호출을 하게 됨
일단 맨 처음에는 M-x package-install 을 입력한 다음에,
ivy 를 입력해보셈
그러면 아마 ivy라는 패키지를 다운로드 받기 시작할꺼임
ivy는 이맥스 탐색 유틸리티인데,
여러가지 일들을 해줌... 일일이 말하기 귀찮음 여기에 나와 있으니 참고
일단 ivy를 다운 받으면 자동으로 .emacs.d/init.el 파일이 생겨있을꺼임
거기로 가서 맨 처음에
| (package-initialize) | |
| (add-to-list 'package-archives '("gnu" . "https://elpa.gnu.org/packages/")) | |
| (add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/")) | |
| (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) |
이 줄들을 추가 합시다.
그러고 나서
M-x package-refresh-contents 를 입력하면 저 패키지 서버들과 동기화를 하게 됩니다.
시간이 좀 걸림
그러고 나서 M-x list-packages 를 입력하면,
패키지 서버들에 등록된 모든 패키지들의 목록을 보여줍니다.
대강 이렇게 보입니다.
사실 귀찮아서 저 목록은 아마 안 보게 될꺼임
그냥 M-x package-install 을 사용하자
먼저 vim에서 온 사람들은
evil을 설치합시다
evil 모드를 사용하게 되면 그냥 vim이랑 정확하게 모ㅡ든 키들이 똑같아지게 됩니다.
저장부터 이맥스 끄는 것 까지 vim이랑 완전히 같아짐
그러면 순정 vim과 출발선은 같아지는거죠?
evil-mode의 깃허브 페이지 를 가보면 다음과 같은 설명이 있습니다.
일단 저 설명은 패키지 매니저를 안 쓰던 시절꺼라 다 따라하지는 말고,
패키지 매니저로 설명을 했으면 init.el 파일에다가
(require 'evil)
(evil-mode 1)
을 추가하시면 됩니다
(evil-mode 1)
은 뭐냐하면 항상 evil-mode를 키고 있겠다는 얘기인데 자세한 설명은 나중에 함
저거를 추가하고 나서 M-x load-file 을 한 다음에 init.el 을 선택하면 init.el의 갱신된 내용이 인터프리터에 올라가고,
evil-mode 1 이 인터프리터에 올라가면서 evil-mode 가 켜지게 됩니다.
또는 M-x evil-mode 를 하셔도 됨 똑같음
그 순간부터는 그냥 vim 키 편하게 쓰시면 됩니다
저도 쓰는 중
그 다음에 설치할껀
smex 라는 패키지인데, 얘는 이맥스 명령어 자동완성, 사용 빈도순으로 캐싱해주는 패키지임
얘 없으면 못 살음..
똑같이 M-x package install RET (엔터) smex 로 설치하면 되고,
이걸 베끼면 됩니다
그냥 저기 있는 코드를 그대로 받아 적으면 됨
smex-initialize 는 말 그대로 smex를 초기화해주는 함수고
(말했다시피 이맥스는 인터프리터라서 저런 함수들도 스크립트로 호출하기 싫으면 M-x smex-initalize 로 후출할 수 있음)
그 밑에 있는건 이제 키바인딩일 바꾸는거임
M-x 는 이미 말했지만 명령어 호출 단축키인데,
(global-set-key (kbd "M-x") 'smex)
가 뭘하는거냐하면,
M-x 를 smex 라는 함수로 바꾼다는거임
그러면 M-x 를 입력할 때 '명령어' 이맥스 자체 함수를 호출하는게 아니라,
smex라는 함수를 호출하겠다는 얘기고,
smex라는 함수는 이맥스의 명령어 함수에다가 자동완성, 그리고 사용빈도에 따른 자동완성 정렬을 해줌
smex를 일단 설치하면 삶이 100배 편해집니다.
그리고 나는 현재 smex-ivy 라는걸 사용하고 있는데,
smex의 자동완성은 굉장히 못생겼음
이렇게 생겼는데,
ivy-smex를 사용할 경우 ivy 인터페이스에 integration을 시켜줘서
아래와 같이 됨 아래는 내가 현재 내 이맥스 찍은거임
이게 훨씬 보기 좋죠?
근데 현재 ivy-smex에 문제가 있는지 M-x package-intsall 로 검색이 안되는 듯함
그래서 나는 깃허브에서 클론한걸 쓰고 있는데 일단 한번 해보셈 저걸로 되나
하여튼 이런 식으로 세팅을 하는거고,
이렇게 일일이 모든걸 세팅해야되는데,
vim도 안 써봐서 나는 하나도 모르겠다 하는 사람은 다른 사람들이 이미 세팅한걸 사용하면 됨
그런 종류의 이맥스 세팅 배포판들이 꽤 있는데,
대표적인게
이것들이 있습니다
저중에서는 spacemacs 가 제일 사용자가 많고, 나도 vim 에서 넘어왔을 때 저걸 썼었음
evil-mode 에 특화돼있는 배포판임
다음 편에 계속


VIM은 버림?
melpa repository추가 하는것도 있었으면 좋겠어요
난 M-x는 이걸로 씀
https://github.com/emacs-helm/helm
vim은 그냥 시스템 에디터로 쓰는 중