An open API service indexing awesome lists of open source software.

https://github.com/ericdallo/emacs-talk

An Emacs introduction using org-mode for presentation
https://github.com/ericdallo/emacs-talk

emacs org org-mode slide talk

Last synced: 8 months ago
JSON representation

An Emacs introduction using org-mode for presentation

Awesome Lists containing this project

README

          

#+TITLE: Emacs talk
#+AUTHOR: @ericdallo

* Emacs Talk

[[file:images/logo.png]]

* History

- Created by Richard Stallman, founder of the GNU foundation.

- First release in _1985_

- Emacs is among the oldest open source projects *still under development*!

* Why should I give a try?

Why Emacs? - https://batsov.com/articles/2011/11/19/why-emacs/

[[file:images/real-programmers.png][file:images/real-programmers.png]]

- Shortcuts for everything!

- Very extensible

* Core

- Single thread (yet)

- 20% in C for performances reasons

- 80% in *Elisp* (Emacs lisp)

* Elisp

- A Lisp dialect programming language

#+BEGIN_SRC emacs-lisp
(defun emacs-talk--print-message ()
"Print a hello world message."
(message "Hello from emacs-talk"))

(defun emacs-talk-hello ()
"Print a emacs message on minibuffer"
(interactive)
(emacs-talk--print-message))
#+END_SRC

* Elisp

- All is done inside buffers

#+BEGIN_SRC emacs-lisp
(defun emacs-talk--is-a-flutter-project ()
(with-temp-buffer
(insert-file-contents "pubspec.yaml")
(goto-char (point-min))
(re-search-forward "sdk\s*:\s*flutter" nil t)))
#+END_SRC

* Packages sources

*** ELPA

- Emacs official packages

*** MELPA

- *4597* packages!

- Community driven 

- Open source on Github

* Keybindings +hell?+

~M~ - Meta key (Command or Alt)
~C~ - Control
~S~ - Shift
~SPC~ - Space
~RET~ - Return ()

~M-x~ - execute-command
~M-x~ ~package-install~ - Install a package
~M-X~ ~describe-bindings~ - Show all available keybindings
~C-x C-s~ - Save buffer

* Configuration

- Everything starts at ~~/.emacs.d/init.el~

- Changing variables value

#+BEGIN_SRC emacs-lisp
(setq emacs-talk-is-awesome t)
#+END_SRC

* Frames
Running instances of Emacs

*** Windows
Views for buffers

**** Buffers
Display contents of a file
Display outputs of programs

* Modes

*** Major mode

- Only 1 major mode per buffer

- Examples: ~dart-mode~, ~java-mode~, ~clojure-mode~

*** Minor modes

- Many minor modes per buffer

- Examples: ~cider-mode~, ~evil-mode~, ~lsp-mode~

* Emacs roots 😰

[[file:images/emacs-raw.png]] [[file:images/frame-window-buffer.png]]

* Doom emacs [[file:images/yay-evil.png]]

[[file:images/doom-emacs.png]]

* Spacemacs

[[file:images/spacemacs.png]]

* Thank you!

Any questions?

 Slides - [[https://github.com/ericdallo/emacs-talk][https://github.com/ericdallo/emacs-talk]]

 Github - [[https://github.com/ericdallo][ericdallo]]