3.0 KiB
3.0 KiB
How to build an editor with Emacs Lisp
DONE Episode 1 - Introduction
CLOSED: [2022-01-09 Sun 19:03]
What is it all about?
- Create an editor, development environment and Window Manager (yeah window manager) and …
- GNU/Emacs is amazing
- Spread the joy
- Guide for contributors
- A guide for people who wants to learn some Lisp
The Plan
- Parallel video series to How to build a compiler with LLVM and MLIR
- Git branches
- No live coding
- Start from Emacs and Jump to FG42
- Feel free to contribute
FG42 and a bit of history
-
It's my:
- Editor/IDE
- Email client
- Window Manager
- File Manager
- Terminal Emulator
- IRC client (at some point)
- TODO manager
- "Office suit" (air qoute)
- ….
- Started on 2010 in a train
- I'm working on the V3
-
Requirements
- Emacs >= 27.1
- Website: https://fg42.org/
- Repository: https://devheroes.codes/FG42
- Website: https://lxsameer.com
- Email: lxsameer@gnu.org or lxsameer@lxsameer.com
Episode 2 - Survive on the first day
Why bother?
Why GNU/Emacs?
People might say because of
- Org-mode
- LSP support
- Support for many many languages
- It's lightweight
- Tons of plugins
- …
I'd say
- Coz it's a lisp environment with an editor attached to it
-
Lisp is the difference
- It's super easy to extend/hack emacs
- In compare to other editors
- You can do pretty much whatever your like in ELisp
- It's like a framework for building an editor
FAQ
What is the difference between Doom, Spacemacs, FG42 and …?
Different editors based on Emacs
Which one should I use?
How to install Emacs packages?
UI Basics & Basic Concepts
- Window
- Frame
- Mode line
- Buffers
- Mini buffer/Echo area
- Point
- Major mode
- Minor mode
Basic Keybindings
How to read key bindings? Here is an example C-x M-e 4
, it means press x
key while
holding Control
and then press e
key while pressing down Alt
and finally press 4
.
- Emacs tutorial
C-h t
(or https://www.gnu.org/software/emacs/tour/) - Quit emacs
C-x C-c
- Abort
C-g
-
Get Help
C-h
familyC-h f
C-h v
C-h m
C-h k
C-h a
- Run a command (function)
M-x
- Visit a file
C-x C-f
- Search in Buffer
C-s
- Save buffer
C-x C-s
- Select region
C-SPC
- Copy
M-w
- Cut(killing)
C-w
- Paste(yanking)
C-y
- Kill buffer
C-x k
- Switch buffer
C-x b
- Undo
C-/
- Eval expression
C-x C-e
describe-mode
Lisp basics
- Expressions everywhere
- Code a data structure
-
Almost everything in Lisp evaluates to themselves except:
- lists
- Symbols
- …
-
Lisp laws:
- Everything in Lisp is an expression and evaluation of an expression means replacing it with its value
-
Almost everything in Lisp evaluates to themselves except:
- Lists
- Symbols
- Quotes
- …
- List evaluation