This slides were displayed as one org file per top-level heading.
For convenience, I made a single-file version of it.
This HTML version was done using the =htmlize-buffer= command.
* Welcome to the first *Emacs Meetup* in Sthlm!
** Some words about me
Nicolas Petton
- I'm french and don't speak Swedish :)
- Sotfware engineer
- Emacs user since ~2009
Web: nicolas-petton.fr
Email: nicolas@petton.fr
Twitter: @NicolasPetton
** Many thanks to Företagsplatsen for sponsoring this Meetup
* Agenda
- Discover the basics
- Interesting modes
(share what you like!)
- Break?
- Customizing & Extending Emacs
- Improvisation
#+BEGIN_SRC emacs-lisp
(animate-string "*Discovering Emacs*"
(/ (window-height) 2)
(- (/ (window-width) 2) 10))
#+END_SRC
* Emacs is not a text editor
It is a system, but it does contain (very efficient) a text editor
* Emacs is also...
- Lisp/Clojure/JS/etc. IDE
- Terminal emulator
- Email client
- IRC client
- Psychotherapist
- Many other things
* Emacs is extremely extensible
"People talk about getting used to a new editor, but over time, it
is precisely the opposite that should happen - the editor should get
used to us." - Vivek Haldar
For this slides I wrote a few lines of Elisp
* Emacs is *old*
1976 by Richard Stallman and Guy L. Steele, Jr
Latest release: Emacs 24.4
* It doesn't look very modern by default
#+BEGIN_SRC sh
emacs -q
#+END_SRC
#+RESULTS:
* It has a different terminology from other editors
- Buffer
- Frame
- Window
- Point
- Mark
- Mode-line
* Emacs & modes
** Each buffer has one major-mode active
A major mode defines the core editing behavior for a buffer.
** Each buffer can have many minor-modes active
A minor mode defines additional behavior that is
orthogonal to major modes.
* Emacs UI is vastly based on key bindings
- All default key bindings are different
from what you are used to
- Do not try to learn them all at once
- Instead, *learn how to learn* Emacs
- Their terminology is also different
C-x C-s
M-x
C-x b
* Emacs basic help
- C-h t: Built-in tutorial
- C-h i: Info manual
- C-h k: Describe key
- C-x C-s: Save buffer
- C-x C-c: Exit Emacs
- M-x: Evaluate interactive command
* Basic movements
Previous line, C-p
:
:
Backward, C-b .... Current cursor position .... Forward, C-f
:
:
Next line, C-n
C-f Move forward a character
C-b Move backward a character
M-f Move forward a word
M-b Move backward a word
C-n Move to next line
C-p Move to previous line
C-a Move to beginning of line
C-e Move to end of line
M-a Move back to beginning of sentence
M-e Move forward to end of sentence
C-v Move forward one screenful
M-v Move backward one screenful
C-l Center the cursor on the screen
* The .emacs customization file
It can be placed in
- ~/.emacs
- ~/.emacs.el
- ~/.emacs.d/init.el
- _emacs (Windows)
* Exploring some Emacs modes
- [X] dired (w/ tramp & read-write)
- [X] eshell
- tramp
- pseudo-devices (/dev/kill)
- calling lisp
- redirecting to buffers
- [ ] undo-tree
- [ ] ace-jump-mode
- [ ] js2-refactor
- [ ] paredit
- [ ] multiple-cursors
- [ ] magit
- [ ] org
- [ ] mu