Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
160
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
170
都什麼時代了,你還在寫 while loop 嗎?
pishen
2
750
Scala + Google Dataflow = Serverless Spark
pishen
6
880
Shapeless Introduction
pishen
2
930
ScalaKitchen
pishen
1
480
sbt-emr-spark
pishen
1
170
My Personal Report of Scala Kansai 2016
pishen
0
440
SBT Basic Concepts
pishen
1
670
annoy4s
pishen
0
110
Other Decks in Programming
See All in Programming
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
5.7k
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
350
act1-costs.pdf
sumedhbala
0
210
霧の中の代数的エフェクト
funnyycat
1
340
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
150
OS アップデート対応の取り組み方がもっと共有されてほしい
andpad
0
110
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
100
20260623_Loop Engineeringで自分の分身の問い合わせBotを作る
ryugen04
0
200
自作OSでスライド発表する
uyuki234
1
3.8k
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.2k
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
160
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
160
Featured
See All Featured
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
72
40k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
260
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
My Coaching Mixtape
mlcsv
0
170
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
290
Designing Powerful Visuals for Engaging Learning
tmiket
1
450
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
970
Side Projects
sachag
455
43k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Accessibility Awareness
sabderemane
1
150
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Code Review Best Practice
trishagee
74
20k
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