ndc 2017 마이크로토크 - spacemacs: 최고의 에디터는 emacs도 vim도 아니다. emacs와...
TRANSCRIPT
왓 스튜디오김영호
스페이스맥스
편집기이야기
왜 안 IDE요?
Vim과 모달(Modal) 편집
Emacs 실패담
Spacemacs
코딩하며살다보면
1인 개발
버블파이터
왓챠
듀랑고
마주하는파일종류가많은데
cpp, lua, py, rb, sh, scala, js, go
html, css, scss, json, yml, csv
txt, md, sql, dot, tf, Dockerfile
IDE에서되면좋지만
Visual Studio
IntelliJ
Eclipse
PyCharm
패기있게
메모장을 열거나
범용편집기를찾는데
Editplus, Notepad++, TextWrangler
Sublime Text, Atom, VS Code
입맛에안맞는걸
A는 느려
B는 안되는 게 많네
C는 마우스로 손이 많이 가
D는 윈도우 전용이야
E는 유료야
구루(Guru)들은
Vim이나 Emacs 쓴다더라
어느쪽이든
제 경우엔 Vim
Vim은
실행속도가 빨라요
어디서나 동일한 편집 환경
제일중요한것은
모달(Modal) 편집이라고 생각
보통의편집기에서
print ‘Hello, world!’
Hello를 Goodbye로 바꾸려면
print ‘Hello, world!’
← ← ← ← ← ← ← ← ←
print ‘, world!’
⌫⌫⌫⌫⌫
print ‘Goodbye, world!’
G o o d b y e
Vim의모달편집은
편집기에 모드(Mode)가 있다는 건데
편집동작과
커서 움직임, 자르기, 붙이기 등
일반(Normal) 모드
텍스트입력이
G o o d b y e 같은
삽입(Insert) 모드
모드별로동작
일반 모드
삽입 모드
…
print ‘Hello, world!’
삽입 모드에서 일반모드로 전환하려면
print ‘Hello, world!’
ESC
print ‘Hello, world!’
일반 모드에서 H로 커서를 움직이고 싶으면
print ‘Hello, world!’
Find H
print ‘Hello, world!’
콤마(,)까지 지우고 삽입 모드로 바꾸려면
print ‘, world!’
change to ,
print ‘Goodbye, world!’
G o o d b y e
print ‘Goodbye, world!’
ESC
다시 일반 모드로
<p>Welcome to Vim</p>
태그 안의 내용을 지우고 싶다면
<p></p>
delete in tag
빠르게원하는동작을
어떤 Vim 책에선 ‘생각의 속도로 편집한다’고
Vim의모달편집은
중독되면 치료가 불가능한데
거의모든 IDE에
Vim의 모달 편집을 재현해주는 플러그인이 있고
Chrome과 Firefox에는
Vim 단축키로 웹 브라우징하는 플러그인도
하지만
Vim은 태생이 편집기라
IDE만큼강력한
기능을 지원하기엔 한계가
Scala로일할때
Vim의 기능 부족으로 IntelliJ를 써야 했는데
IdeaVim은안되는게많았고
IntelliJ의 Vim 플러그인
옆동네 Emacs는
Ensime이라는 플러그인으로 Scala 코딩한다더라
옆자리동료는극단적으로
alias vim=emacs 하기도
하지만실패
Vim과 Emacs가 섞이자 손가락이 제곱으로 꼬임
Emacs는
Emacs Lisp이라는 전용 언어 기반으로
거의모든기능을
입맛에 맞게 재구현할 수 있지만
Ctrl, Alt 키조합
단축키라 편집이 매우 불편한데
RSI라는
반복사용 긴장성 손상 증후군을 운운하며
새끼손가락 안부를 묻기도 하고
훌륭한운영체제라고조롱
슬랙도 트위터도 이메일도 게임도 되는데
좋은 편집기만 있으면 되겠네?
어쨌든
Emacs의 풍부한 플러그인이 부러워졌는데
EVIL이라는게있더라
Extensible VI Layer for Emacs
Vim을완벽히재현해주지는
IdeaVim과 비슷하게
고쳐서쓸수있는데
Emacs는 입맛대로 바꿀 수 있으니까
이걸알아보다가
Spacemacs를 알게 되었다
Spacemacs는
Vim 사용자였으나
더 풍부한 플러그인을 갈망한 사람들이
최고의편집기는
‘Emacs와 Vim이다’ 를 모토로
커뮤니티주도하에
모두가 동의할 수 있는 방향으로
EVIL을 Vim과더비슷하게
다양한 EVIL 플러그인 통합
Emacs의어려운부분을쉽게
플러그인 관리
일관된 단축키
Spacemacs의모달편집은
써본 것 중 Vim과 제일 흡사하고
다른단축키들은
Ctrl, Alt키 대신 Space 기반으로
연상하기쉽게
SPC window split
SPC file find
SPC git status
다양한기능포함
일명 Batteries Included
한줄추가만으로
dotspacemacs-configuration-layers‘(docker
graphvizorgscalaversion-control)
Org
Markdown과 비슷한 파일 형식
편집기와 통합된 풍부한 기능
정리
Vim 모달 편집 좋다
Emacs 플러그인 좋다
Spacemacs 둘 다
징검다리연휴엔
Spacemacs 한 번 써보는 건 어떨까요?