Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Pishen's Emacs Journey
Search
Pishen Tsai
July 20, 2018
Programming
0
140
Pishen's Emacs Journey
Pishen Tsai
July 20, 2018
Tweet
Share
More Decks by Pishen Tsai
See All by Pishen Tsai
Introduction to Minitime
pishen
1
160
都什麼時代了,你還在寫 while loop 嗎?
pishen
2
730
Scala + Google Dataflow = Serverless Spark
pishen
6
850
Shapeless Introduction
pishen
2
910
ScalaKitchen
pishen
1
450
sbt-emr-spark
pishen
1
150
My Personal Report of Scala Kansai 2016
pishen
0
410
SBT Basic Concepts
pishen
1
640
annoy4s
pishen
0
94
Other Decks in Programming
See All in Programming
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
150
ELYZA_Findy AI Engineering Summit登壇資料_AIコーディング時代に「ちゃんと」やること_toB LLMプロダクト開発舞台裏_20251216
elyza
2
590
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
470
Tinkerbellから学ぶ、Podで DHCPをリッスンする手法
tomokon
0
140
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
160
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.4k
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
280
Vibe codingでおすすめの言語と開発手法
uyuki234
0
110
リリース時」テストから「デイリー実行」へ!開発マネージャが取り組んだ、レガシー自動テストのモダン化戦略
goataka
0
140
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
110
Graviton と Nitro と私
maroon1st
0
130
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
890
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
141
7.3k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
89
Into the Great Unknown - MozCon
thekraken
40
2.2k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
2
3.8k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
286
14k
What does AI have to do with Human Rights?
axbom
PRO
0
1.9k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
850
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.8k
Crafting Experiences
bethany
0
22
Reality Check: Gamification 10 Years Later
codingconduct
0
1.9k
Transcript
@pishen's journey
Languages
Editors
Java IDE features type hint auto import auto complete refactoring
debugger Python SQL HTML Markdown YAML General light-weight easy to learn focus on editing Bash Script Edit on server fast edit-and-try cycle
Java IDE features type hint auto import auto complete refactoring
debugger Python SQL HTML Markdown YAML General light-weight easy to learn focus on editing Edit on server fast edit-and-try cycle Different Hot-Keys Fragmented UX Bash Script
IDE features Edit on server Easily extensible Support mouse General
Check email or Browse the web Draw charts ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ WARNING! Highly Subjective
Editor War https://en.wikipedia.org/wiki/Editor_war Editor macros Lisp, C Richard Stallman Since
1976 MIT AI Lab 編輯器之神 魔鬼的編輯器 vi-vi-vi 42 years ago 神的編輯器
Famous Emacs Users Donald Knuth 松本行弘 Mark Zuckerberg https://www.slideshare.net/yukihiro_matz/how-emacs-changed-my-life http://qr.ae/TUINae
heard about Emacs My Editor History 台南一中 台大資工 KKBOX Vpon
AlgoLab IRLab 2007 Scala Days 2015 Yahoo! Taiwan KKTV
Let's start the journey
Installation $ brew cask install emacs $ sudo apt-get install
emacs Latest version: 26.1 (Released on May 28, 2018)
Start $ emacs OR
Exit C-x C-c Ctrl Ctrl X C
Open File C-x C-f
Change Color Theme M-x customize-themes Meta Please make sure that
your terminal can send Meta Key signal. iTerm Terminal Alt Esc OR option
Moving C-f C-b C-e C-a C-p M-v C-n C-v
Caps Lock ➔ Ctrl
ADM-3A
ADM-3A
Erasing println("Hello, Emacs!") DEL C-d C-k
Cancel C-g When you mess up your command, press (several
times) to get back.
Undo C-/ There's no Redo in Emacs, you can Undo
your Undo. C-/ C-/ C-/ Undo Undo Undo Redo Redo Redo C-/ C-/ C-/ C-g
Same as 90% of text boxes C-f C-b C-p C-n
C-a C-e C-d (C-/)
Selection Shift-(Moving) or use your mouse!
Copy & Paste Cmd-c & Cmd-v
.scala .py *error-msg* *file-tree* buffers frame window window minibuffer modeline
UI
minibuffer .scala .py *error-msg* *file-tree* modeline window buffers frame window
UI
minibuffer .scala .py *error-msg* *file-tree* modeline window buffers frame window
UI C-x
minibuffer .scala .py *error-msg* *file-tree* modeline window buffers frame window
UI C-x C-x
minibuffer .scala .py *error-msg* *file-tree* modeline window buffers frame window
UI C-x C-x C-x
minibuffer .scala .py *error-msg* *file-tree* modeline window buffers frame window
C-x C-f UI
minibuffer .scala .py *error-msg* *file-tree* modeline window buffers frame window
C-x C-f .java UI
minibuffer .scala .py *error-msg* *file-tree* modeline window buffers frame window
.java C-x k ✗ UI
minibuffer .scala .py *error-msg* *file-tree* modeline window buffers frame window
C-x k UI
Split Windows C-x 3 C-x 2 C-x o ✗ C-x
0 ✗ ✗ C-x 1
Toggle Comment M-;
Indent your Code TAB
Edit on Server C-x C-f /ssh:
All Commands are Functions C-f forward-char M-x
All Commands are Configurable M-x forward-char C-f M-x global-set-key ✗
C-?
Configuration File ~/.emacs.d/init.el Emacs Lisp
60 years ago John McCarthy 1927 ~ 2011 Dynamic Typing
Functional (* 2 (+ 3 4)) Common Lisp Scheme Emacs Lisp Racket Since 1958 Clojure JVM Hy Python LISP 2 * (3 + 4)
Lazy to hack?
Built-in Package System M-x list-packages
None
Some interesting packages
minimap
magit
multiple-cursors
evil-mode
ensime
ein
None
M-x snake
M-x tetris
https://www.facebook.com/groups/emacs.taiwan/ Emacs Taiwan
M-x thank-you