왓 스튜디오
김영호
스페이스맥스
편집기 이야기
왜 안 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
graphviz
org
scala
version-control
)
Org
Markdown과 비슷한 파일 형식
편집기와 통합된 풍부한 기능
정리
Vim 모달 편집 좋다
Emacs 플러그인 좋다
Spacemacs 둘 다
징검다리 연휴엔
Spacemacs 한 번 써보는 건 어떨까요?
감사합니다
github.com/yeonghoey

NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!