"이맥스는 사용자와 함께 진화하는 에디터다"
- 야이미친
<이맥스 개종 가이드>
이맥스는 처음에 접근 장벽이 매우 높은걸로 유명합니다
vim 과 다르게 이맥스를 쓰는 사람들은 이맥스 세팅하느라 바빠서 초보용 강좌를 안 쓰거든요
(저도 방금전까지 세팅하다가 오늘 세팅은 충분히 한 것 같아서 글 쓰는 중...)
일단 많은 vim 사용자들은 자기가 대체 왜 이맥스를 써야되는지 묻습니다.
이 강좌를 보면.. 대강 알게 될듯...?
하여튼 이 튜토리얼은 이맥스 시작 과정에서 알아야될 것들을 다룹니다.
먼저 이맥스를 설치합시다.
이맥스는 vim과는 다르게 커맨드라인 에디터가 아닙니다.
gui 에디터고요, 따라서 커맨드라인을 사용하지 않아도 됩니다.
현재 윈도우, 리눅스, OSX 모두 이맥스가 지원하고 있고 윈도우 이맥스도 쓸만한데 대신 고생을 조금 더 합니다
(우지챠는 윈도우 이맥스 출신임...)
순정 이맥스를 처음 설치하면 (현재 메이저 버전이 25)
아래와 같은 화면을 볼 수 있습니다
그리고 대다수의 사람들은 여기서 접습니다.
저도 처음에 이맥스 시도 했을 때 여기서 접었어요...
시발 뭐가 뭔지 알아야지
파일도 못 열겠으니 원;;
그래서 대다수의 사람들은 여기서부터 이맥스 공식 홈페이지로 갑니다
그리고 vim 경험이 있는 사람들은 단축키가 전부라는 것을 알고서 단축키를 외우기 시작합니다
결론부터 얘기하면, 외우지 마세요
예전에 야이미친 형님한테 "이맥스 단축키랑 vim 단축키랑 비교하면 어떤가요?"
라고 질문했다가 이맥스 단축키들을 그대로 쓰는건 멍청한 짓이라고 비교를 못한다고 쿠사리 먹었습니다
네 외우지 마세요
그래도 저는 순정 단축키를 몇개 쓰고 있는데, 대강 소개를 하겠습니다.
이맥스에서 C-x 이런식으로 나와있는거는 대강 Ctrl + x 라는 뜻이고,
C-x b 라는거는 Ctrl + x 누른 다음에 b 를 누르라는 뜻입니다.
M-x 에서 M 은 메타키라고 해서, 예전에 이맥스 전용 키보드 (스페이스 캐댓 키보드)의 레거시인데,
오늘날 키보드에서 Alt 키입니다.
이맥스에서는 그래서 컨트롤과 알트키, 그리고 나머지 키들의 조합 + 그 다음에 누르는 키 의 조합으로 단축키들이 이루어져 있습니다.
제가 현재 사용하고 있는 것들은,
C-x C-f
파일 탐색
C-x C-c
이맥스 종료
C-x C-s
현재 버퍼(문서) 저장
C-x b
버퍼 목록 띄우기
C-x 3
화면 양쪽으로 분할
(vim 에서 vsplit)
C-x 2
화면 위 아래로 분할
(vim에서 split)
C-x 0
현재 창 닫기 (닫기만 하는거지 버퍼를 죽이는건 아닙니다. 나중에 따로 설명함)
M-x
명령 입력하기
이 정도인듯
이맥스에 관해서 알아둬야될 간단한 이론들을 소개하자면,
일단 이맥스는 Lisp 기반입니다.
Emacs Lisp 라고 해서 Lisp의 한 방언을 스크립트 언어로 사용하고 있고,
사실 이맥스는 Emacs Lisp 가상 머신 위에서 돌아감
그래서 사실상 VM 과 비슷한 느낌이라고 보셔도 됩니다.
그렇다보니까 vim 같은 정적인 텍스트 에디터와는 다르게 굉장히 다이나믹한 환경이고,
우스겟소리로 "이맥스 유저들은 이맥스 운영체제와 리눅스라는 시스템 라이브러리를 사용한다"
라고 합니다.
실제로 이맥스는 apt-get 이나 pacman 처럼 전용 패키지 매니저를 사용하고 있습니다.
vim에서 plugin 이라고 하는걸 이맥스에서는 package 라고 부르는데,
package 들은 결국에는 그냥 스크립트 파일이고, vim 처럼 따로 랭귀지 서버 같은걸 돌리는 경우도 꽤 있습니다.
이맥스는 처음 키면, 리눅스는 ~/.emacs.d, 윈도우에서는 유저/.emacs.d/
에서 예전에는 .emacs 파일이였나 이걸 로드하고,
요즘은 init.el 이라는 파일이 있으면 그걸 로드합니다.
vim의 .vimrc 파일이랑 똑같은 개념이고요,
이맥스는 처음 키면 무조건 저 파일을 로드합니다.
그니까 일단 이맥스를 시작했으면 ~/.emacs.d/init.el 파일을 만듭시다.
그 다음에 아마 .emacs.d/elpa/ 경로에 있는 파일들을 읽는걸로 기억하는데,
여기는 패키지 매니저로 다운 받은 파일들이 들어가는 곳입니다.
스크립트 파일을 읽으면 그게 Elisp 인터프리터에 올라가게 되고,
그 스크립트의 내용을 사용할 수 있습니다.
이맥스에서는 설정을 다른 방법으로 사용하지 않고 전부 Elisp 로 진행하게 됩니다.
다음 편에서 어떻게 하는지 보여드리도록 하고,
모든 기능들은 결국에는 Elisp 함수기 때문에,
M-x 로 명령어를 입력하면 사실 Elisp 함수를 호출하는거임
그래서 이맥스에서 하는 모든 행위들, 설정, 스크립트 작성 등등은 리습 프로그래밍임
하여튼 이맥스를 잘 쓰기 위해서는 이러한 이맥스 생태계를 이해하고 있어야됨
이걸 이해하면 잘 쓸 수 있음
다음 편에 계속
정보추
이맥스가 사람 손에 좋지 못한 영향을 끼친다는데 어케 생각함?
본문을 읽으면 그런 개소리를 안 하지 - return 0;
컨트롤하고 알트를 너무 누른다하고 창시자?가 무슨 손에 이상 생겼다고 들었는데
오졌따.. 내가 곧 이막스 입문하려는 거 어떻게 알고..
이맥스 단축키가 별로라 빔으로 넘어갔었는데 오히려 안쓰는게 정상이었군.
개소리임 컨트롤하고 알트 안 쓰게 바꿀 수 있음 - return 0;
그건 읽어서 아는데 순정 셋은 손에 안 좋다는 건 단순히 루머임? 아니면 일리있는 소리임? 나중에 입문할 일 생기면 참고하려고
빨리 이끌어 주십쇼
걍 윈도우에서 이맥스 깔아서 써두 되죠?
컨트롤 손에 안 닿는 사람은 고통이지 또 빔에 익숙한 사람들은 손가락을 최대한 덜 쓰기도 하고 - return 0;
C-x -> C-x <- 도 저는 많이 쓰는데
흠... 나도 컨트롤 누르기 힘든데 할려면 다른 키로 바꿔야 겠네
윈도우에서 써도 되는데 그 쪽은 기본 세팅이 좀 더 필요해요 - return 0;
굳이 vi에서 개종할 필요를 못 느끼겠다
빼ㅐ애애액 빨리 떠먹여 주세여 - dc App
vi 가 아니라 vim 이겠지..
요즘은 emacs든 vim이든 vscode로 많이 넘어가더라. 나도 윈도우에서 emacs 쓰다가 암 걸리겠어서 넘어갈까 생각중 - dc App
ㄴ ㅠㅠ 가지 마요
thank you