Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Pishen's Emacs Journey
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Pishen Tsai
July 20, 2018
Programming
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Pishen's Emacs Journey
Pishen Tsai
July 20, 2018
More Decks by Pishen Tsai
See All by Pishen Tsai
Introduction to Minitime
pishen
1
230
都什麼時代了,你還在寫 while loop 嗎?
pishen
2
780
Scala + Google Dataflow = Serverless Spark
pishen
6
890
Shapeless Introduction
pishen
2
960
ScalaKitchen
pishen
1
500
sbt-emr-spark
pishen
1
180
My Personal Report of Scala Kansai 2016
pishen
0
450
SBT Basic Concepts
pishen
1
690
annoy4s
pishen
0
120
Other Decks in Programming
See All in Programming
Groovy as a human and AI friendly programming language
paulk
0
140
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.2k
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
260
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
1.9k
AI時代のFlutter品質設計 — アプリ品質を守るQuality Layers
omatty198
0
320
クラウドエージェントは、 何がそんなに便利なのか / what makes cloud agents so useful
rkaga
3
630
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
140
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
350
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
220
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
7.1k
contenteditable と日本語入力に向き合う
colorful12
0
230
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
170
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
55
8.4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Exploring anti-patterns in Rails
aemeredith
4
550
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
310
Designing Experiences People Love
moore
143
24k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
320
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Designing for humans not robots
tammielis
254
26k
How to build a perfect <img>
jonoalderson
1
6.2k
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