EMACS, THE ULTIMATE Trung Ta Oracle Labs Australia & National - - PowerPoint PPT Presentation

emacs the ultimate
SMART_READER_LITE
LIVE PREVIEW

EMACS, THE ULTIMATE Trung Ta Oracle Labs Australia & National - - PowerPoint PPT Presentation

EMACS, THE ULTIMATE Trung Ta Oracle Labs Australia & National University of Singapore Brisbane, Australia August 9 th , 2017 Which editor do you use the most? CASE STUDY: REAL PROGRAMMERS CASE STUDY: REAL PROGRAMMERS


slide-1
SLIDE 1

EMACS, THE ULTIMATE

Trung Ta

Oracle Labs Australia & National University of Singapore

Brisbane, Australia – August 9th, 2017

slide-2
SLIDE 2

Which editor do you use the most?

slide-3
SLIDE 3

CASE STUDY: REAL PROGRAMMERS

slide-4
SLIDE 4

CASE STUDY: REAL PROGRAMMERS

https://xkcd.com/378/

slide-5
SLIDE 5

M-x butterfly

slide-6
SLIDE 6

Outline

1 Emacs, the basic 2 Emacs, the advance 3 Emacs, the ultimate 4 Getting started 5 Conclusion

5

slide-7
SLIDE 7

A few notes

  • The talk title is borrowed from: lambda-the-ultimate.org
  • Introduce what I know that Emacs can do
  • Many things that I don’t know or haven’t got chances to use
  • No intention to compare Emacs with other editors/IDEs

6

slide-8
SLIDE 8

A few notes

  • The talk title is borrowed from: lambda-the-ultimate.org
  • Introduce what I know that Emacs can do
  • Many things that I don’t know or haven’t got chances to use
  • No intention to compare Emacs with other editors/IDEs
  • The first time I give an Emacs talk

6

slide-9
SLIDE 9

Emacs, the basic

7

slide-10
SLIDE 10

How do we interact with editor?

8

slide-11
SLIDE 11

How do we interact with editor?

8

slide-12
SLIDE 12

How do we interact with editor?

8

slide-13
SLIDE 13

How can we edit text unproductively?

9

slide-14
SLIDE 14

How can we edit text unproductively?

  • Frequently moving hand between keyboard & mouse

9

slide-15
SLIDE 15

How can we edit text unproductively?

  • Frequently moving hand between keyboard & mouse
  • Frequently moving palm around keyboard keys

9

slide-16
SLIDE 16

How can we edit text unproductively?

  • Frequently moving hand between keyboard & mouse
  • Frequently moving palm around keyboard keys
  • Not using convenient editing features

◮ Use ←, →, ↑, ↓ keys instead of Home, End, PageUp, PageDown ◮ Use an editor with few convenient editing features 9

slide-17
SLIDE 17

How can we edit text unproductively?

  • Frequently moving hand between keyboard & mouse
  • Frequently moving palm around keyboard keys
  • Not using convenient editing features

◮ Use ←, →, ↑, ↓ keys instead of Home, End, PageUp, PageDown ◮ Use an editor with few convenient editing features

⇒ Emacs helps to avoid these problems!

9

slide-18
SLIDE 18

What is Emacs?

  • A text editor born in 1976 and still lives actively today
  • The name Emacs stands for Editor MACroS
  • The first Emacs version was written in 1976 by David A. Moon

and Guy L. Steele Jr

  • The most popular version GNU Emacs was created by Richard

Stallman in 1984

  • Many modern editors such as Eclipse, IntelliJ IDEA, Sublime,

Visual Studio have an Emacs simulation mode

10

slide-19
SLIDE 19

Emacs movements

11

slide-20
SLIDE 20

Emacs movements

  • Use ←, →, ↑, ↓, Home, End, PageUp, PageDown as usual

11

slide-21
SLIDE 21

Emacs movements

  • Use ←, →, ↑, ↓, Home, End, PageUp, PageDown as usual
  • But b, f, p, n, a, e, v can avoid palm moving

(backward/forward/previous/next /a . . . z/end/v in ↓)

11

slide-22
SLIDE 22

Emacs movements

  • Use ←, →, ↑, ↓, Home, End, PageUp, PageDown as usual
  • But b, f, p, n, a, e, v can avoid palm moving

(backward/forward/previous/next /a . . . z/end/v in ↓)

◮ C-b, C-f: backward/forward character (C denotes the Ctrl key) 11

slide-23
SLIDE 23

Emacs movements

  • Use ←, →, ↑, ↓, Home, End, PageUp, PageDown as usual
  • But b, f, p, n, a, e, v can avoid palm moving

(backward/forward/previous/next /a . . . z/end/v in ↓)

◮ C-b, C-f: backward/forward character (C denotes the Ctrl key) ◮ C-p, C-n, C-a, C-e: previous/next line, begin/end of line 11

slide-24
SLIDE 24

Emacs movements

  • Use ←, →, ↑, ↓, Home, End, PageUp, PageDown as usual
  • But b, f, p, n, a, e, v can avoid palm moving

(backward/forward/previous/next /a . . . z/end/v in ↓)

◮ C-b, C-f: backward/forward character (C denotes the Ctrl key) ◮ C-p, C-n, C-a, C-e: previous/next line, begin/end of line ◮ C-v, M-v: scroll up/down window (M denotes the Alt key) 11

slide-25
SLIDE 25

Emacs movements

  • Use ←, →, ↑, ↓, Home, End, PageUp, PageDown as usual
  • But b, f, p, n, a, e, v can avoid palm moving

(backward/forward/previous/next /a . . . z/end/v in ↓)

◮ C-b, C-f: backward/forward character (C denotes the Ctrl key) ◮ C-p, C-n, C-a, C-e: previous/next line, begin/end of line ◮ C-v, M-v: scroll up/down window (M denotes the Alt key) ◮ M-b, M-f: backward/forward word 11

slide-26
SLIDE 26

Emacs movements

  • Use ←, →, ↑, ↓, Home, End, PageUp, PageDown as usual
  • But b, f, p, n, a, e, v can avoid palm moving

(backward/forward/previous/next /a . . . z/end/v in ↓)

◮ C-b, C-f: backward/forward character (C denotes the Ctrl key) ◮ C-p, C-n, C-a, C-e: previous/next line, begin/end of line ◮ C-v, M-v: scroll up/down window (M denotes the Alt key) ◮ M-b, M-f: backward/forward word

  • Too complicated!

11

slide-27
SLIDE 27

Emacs movements

  • Use ←, →, ↑, ↓, Home, End, PageUp, PageDown as usual
  • But b, f, p, n, a, e, v can avoid palm moving

(backward/forward/previous/next /a . . . z/end/v in ↓)

◮ C-b, C-f: backward/forward character (C denotes the Ctrl key) ◮ C-p, C-n, C-a, C-e: previous/next line, begin/end of line ◮ C-v, M-v: scroll up/down window (M denotes the Alt key) ◮ M-b, M-f: backward/forward word

  • Too complicated!
  • But some are similar to Unix/Linux Shell!

11

slide-28
SLIDE 28

Emacs movements

By Martin Grand

12

slide-29
SLIDE 29

Buffer and window

13

slide-30
SLIDE 30

Buffer and window

  • Emacs buffer:

◮ The Emacs object containing text ◮ Buffer = file: a file can be opened in multiple buffers ◮ C-x C-f, C-x C-b, C-x k: open file, switch buffer, kill buffer 13

slide-31
SLIDE 31

Buffer and window

  • Emacs buffer:

◮ The Emacs object containing text ◮ Buffer = file: a file can be opened in multiple buffers ◮ C-x C-f, C-x C-b, C-x k: open file, switch buffer, kill buffer

  • Emacs window:

◮ The Emacs object showing a buffer ◮ Emacs’ window = window in Linux/Windows (Emacs calls it frame) ◮ C-x 0, 1, 2, 3: delete, maximize, split horizontally/vertically ◮ C-x {, }, ˆ, _: shrink, enlarge horizontally/vertically 13

slide-32
SLIDE 32

Mark, region and kill ring

14

slide-33
SLIDE 33

Mark, region and kill ring

  • Mark and region

◮ Mark is a special text position set by the command C-Space ◮ Region is the text between the point (current cursor) and the mark ◮ Flexibility: set mark once and adjust the region by moving the cursor 14

slide-34
SLIDE 34

Mark, region and kill ring

  • Mark and region

◮ Mark is a special text position set by the command C-Space ◮ Region is the text between the point (current cursor) and the mark ◮ Flexibility: set mark once and adjust the region by moving the cursor

  • Kill ring

◮ The greedy clipboard of Emacs ◮ M-w, C-w, C-y: copy, cut, yank (paste) ◮ M-y: paste the previously copied/cut texts ◮ C-k, M-d, C-Backspace, C-Del, . . . store deleted texts into kill ring 14

slide-35
SLIDE 35

Emacs, the advance

15

slide-36
SLIDE 36

Advanced editing

16

slide-37
SLIDE 37

Advanced editing

  • Edit, mark by symbolic expressions: smartparens

16

slide-38
SLIDE 38

Advanced editing

  • Edit, mark by symbolic expressions: smartparens
  • Text completion: hippie-expand, dabbrev-expand

16

slide-39
SLIDE 39

Advanced editing

  • Edit, mark by symbolic expressions: smartparens
  • Text completion: hippie-expand, dabbrev-expand
  • Using macro: F3, F4

16

slide-40
SLIDE 40

Advanced editing

  • Edit, mark by symbolic expressions: smartparens
  • Text completion: hippie-expand, dabbrev-expand
  • Using macro: F3, F4
  • Block editing: C-x SPC

16

slide-41
SLIDE 41

Advanced editing

  • Edit, mark by symbolic expressions: smartparens
  • Text completion: hippie-expand, dabbrev-expand
  • Using macro: F3, F4
  • Block editing: C-x SPC
  • Text undo:

◮ Default undo: greedy, remember everything: undo of undo of undo . . . ◮ Modern undo: undo-tree with visualization 16

slide-42
SLIDE 42

Advanced editing

17

slide-43
SLIDE 43

Advanced editing

  • Text conversion and transposition

◮ M-l, M-u, M-c: lowercase, uppercase, capitalize first character ◮ C-t, M-t, C-M-t, C-x C-t: transpose character, word, expression, line 17

slide-44
SLIDE 44

Advanced editing

  • Text conversion and transposition

◮ M-l, M-u, M-c: lowercase, uppercase, capitalize first character ◮ C-t, M-t, C-M-t, C-x C-t: transpose character, word, expression, line

  • Text search, replace and highlighting in current buffer:

◮ Search: isearch, swivel, occur ◮ Replace: anzu ◮ Highlight: highlighting ◮ Regular expression supported 17

slide-45
SLIDE 45

Handy commands

18

slide-46
SLIDE 46

Handy commands

  • Emacs commands completion and narrowing: helm, ivy

18

slide-47
SLIDE 47

Handy commands

  • Emacs commands completion and narrowing: helm, ivy
  • Key-binding suggestion: which-key

18

slide-48
SLIDE 48

Handy commands

  • Emacs commands completion and narrowing: helm, ivy
  • Key-binding suggestion: which-key
  • Text navigation in a few key strokes: avy

18

slide-49
SLIDE 49

Handy commands

  • Emacs commands completion and narrowing: helm, ivy
  • Key-binding suggestion: which-key
  • Text navigation in a few key strokes: avy
  • Window selection: other-window, windmove, winum, winner

18

slide-50
SLIDE 50

Handy commands

  • Emacs commands completion and narrowing: helm, ivy
  • Key-binding suggestion: which-key
  • Text navigation in a few key strokes: avy
  • Window selection: other-window, windmove, winum, winner
  • Buffer navigation: helm-mini, previous/next buffer

18

slide-51
SLIDE 51

Handy commands

  • Emacs commands completion and narrowing: helm, ivy
  • Key-binding suggestion: which-key
  • Text navigation in a few key strokes: avy
  • Window selection: other-window, windmove, winum, winner
  • Buffer navigation: helm-mini, previous/next buffer
  • Working with other-window: <command>-other-window

18

slide-52
SLIDE 52

Handy commands

  • Emacs commands completion and narrowing: helm, ivy
  • Key-binding suggestion: which-key
  • Text navigation in a few key strokes: avy
  • Window selection: other-window, windmove, winum, winner
  • Buffer navigation: helm-mini, previous/next buffer
  • Working with other-window: <command>-other-window
  • Others: just-one-space, delete-blank-lines, repeat

18

slide-53
SLIDE 53

Understand Emacs’ components

  • Buffer, window, frame
  • Major mode: display buffer, visualize and manipulate content
  • Minor mode: auxiliary editing and visualizing features
  • Mode line, header line: all auxiliary information
  • Mini-buffer, echo area: user interacts with Emacs commands

19

slide-54
SLIDE 54

Explore Emacs’ documentation

  • Describe major mode: C-h m (M-x describe-mode)
  • Describe key binding: C-h k (M-x describe-key)
  • Describe function: C-h f (M-x describe-function)
  • Describe variable: C-h v (M-x describe-variable)

20

slide-55
SLIDE 55

Emacs, the ultimate

21

slide-56
SLIDE 56

Integrated Development Environment

22

slide-57
SLIDE 57

Integrated Development Environment

  • Support almost every programming languages:

◮ E.g., C/C++, OCaml, Latex, Python, HTML, Java, LLVM bitcode ◮ Comfortability: (almost) the same key bindings for all languages 22

slide-58
SLIDE 58

Integrated Development Environment

  • Support almost every programming languages:

◮ E.g., C/C++, OCaml, Latex, Python, HTML, Java, LLVM bitcode ◮ Comfortability: (almost) the same key bindings for all languages

  • Syntax highlighting, auto indentation

22

slide-59
SLIDE 59

Integrated Development Environment

  • Support almost every programming languages:

◮ E.g., C/C++, OCaml, Latex, Python, HTML, Java, LLVM bitcode ◮ Comfortability: (almost) the same key bindings for all languages

  • Syntax highlighting, auto indentation
  • Code completion, code outline, jump to definition

22

slide-60
SLIDE 60

Integrated Development Environment

  • Support almost every programming languages:

◮ E.g., C/C++, OCaml, Latex, Python, HTML, Java, LLVM bitcode ◮ Comfortability: (almost) the same key bindings for all languages

  • Syntax highlighting, auto indentation
  • Code completion, code outline, jump to definition
  • Lint checking (on-the-fly), syntax checking (on-the-fly)

22

slide-61
SLIDE 61

Integrated Development Environment

  • Support almost every programming languages:

◮ E.g., C/C++, OCaml, Latex, Python, HTML, Java, LLVM bitcode ◮ Comfortability: (almost) the same key bindings for all languages

  • Syntax highlighting, auto indentation
  • Code completion, code outline, jump to definition
  • Lint checking (on-the-fly), syntax checking (on-the-fly)
  • Compilation mode: jump back and forth to errors

22

slide-62
SLIDE 62

Integrated Development Environment

  • Support almost every programming languages:

◮ E.g., C/C++, OCaml, Latex, Python, HTML, Java, LLVM bitcode ◮ Comfortability: (almost) the same key bindings for all languages

  • Syntax highlighting, auto indentation
  • Code completion, code outline, jump to definition
  • Lint checking (on-the-fly), syntax checking (on-the-fly)
  • Compilation mode: jump back and forth to errors
  • Weakness: code refactoring is limited

22

slide-63
SLIDE 63

Integrated Development Environment

  • Project management: speedbar, projectile

◮ Navigate among files and folders ◮ Search files in a project, search/replace text in files of a project ◮ Switch between parent and child projects 23

slide-64
SLIDE 64

Integrated Development Environment

  • Project management: speedbar, projectile

◮ Navigate among files and folders ◮ Search files in a project, search/replace text in files of a project ◮ Switch between parent and child projects

  • Version control: Git, Hg, CVS, Svn, Bazaar, Monotone, . . .

◮ Git: magit – everything that git cli can do ◮ Hg: monky – influenced by magit 23

slide-65
SLIDE 65

Integrated Development Environment

  • Project management: speedbar, projectile

◮ Navigate among files and folders ◮ Search files in a project, search/replace text in files of a project ◮ Switch between parent and child projects

  • Version control: Git, Hg, CVS, Svn, Bazaar, Monotone, . . .

◮ Git: magit – everything that git cli can do ◮ Hg: monky – influenced by magit

  • Terminal: shell, term, eshell

23

slide-66
SLIDE 66

Integrated Development Environment

  • Project management: speedbar, projectile

◮ Navigate among files and folders ◮ Search files in a project, search/replace text in files of a project ◮ Switch between parent and child projects

  • Version control: Git, Hg, CVS, Svn, Bazaar, Monotone, . . .

◮ Git: magit – everything that git cli can do ◮ Hg: monky – influenced by magit

  • Terminal: shell, term, eshell
  • Text diff and merge: diff, ediff

23

slide-67
SLIDE 67

Everyday Emacs

24

slide-68
SLIDE 68

Everyday Emacs

  • File manager:

◮ Directory as a buffer: dired ◮ Recent files, recent directories: recentf 24

slide-69
SLIDE 69

Everyday Emacs

  • File manager:

◮ Directory as a buffer: dired ◮ Recent files, recent directories: recentf

  • Text search, file search anywhere in the file system

◮ Text search: grep, helm-grep, helm-ag ◮ File search: helm-locate 24

slide-70
SLIDE 70

Everyday Emacs

  • Workspace management: eyebrowse

25

slide-71
SLIDE 71

Everyday Emacs

  • Workspace management: eyebrowse
  • Note taking, project planning: org-mode

25

slide-72
SLIDE 72

Everyday Emacs

  • Workspace management: eyebrowse
  • Note taking, project planning: org-mode
  • Document viewing: images, pdf, presentation, archive files

25

slide-73
SLIDE 73

Everyday Emacs

  • Workspace management: eyebrowse
  • Note taking, project planning: org-mode
  • Document viewing: images, pdf, presentation, archive files
  • Spell checking: aspell, hunspell, flyspell, langtool

25

slide-74
SLIDE 74

Everyday Emacs

  • Workspace management: eyebrowse
  • Note taking, project planning: org-mode
  • Document viewing: images, pdf, presentation, archive files
  • Spell checking: aspell, hunspell, flyspell, langtool
  • Web browser, remote access, email reader: eww, tramp, gnus

25

slide-75
SLIDE 75

Everyday Emacs

  • Workspace management: eyebrowse
  • Note taking, project planning: org-mode
  • Document viewing: images, pdf, presentation, archive files
  • Spell checking: aspell, hunspell, flyspell, langtool
  • Web browser, remote access, email reader: eww, tramp, gnus
  • More handy, useful features, and even game, screensaver!

25

slide-76
SLIDE 76

Getting started

26

slide-77
SLIDE 77

Emacs Starter Kits

Name Stars Forks Contri- butors Commits GitHub Sites Spacemacs 12.430 3.219 574 7.405

GH/syl20bnr/spacemacs

Purcell emacs 3.668 1.866 16 2.638

GH/purcell/emacs.d

Prelude 3.470 1.453 120 1.239

GH/bbatsov/prelude

Emacs live 1.240 245 34 703

GH/overtone/emacs-live

Magnars emacs 1.135 206 8 1.402

GH/magnars/.emacs.d Updated in August 05th, 2017

27

slide-78
SLIDE 78

Create your own style Emacs

28

slide-79
SLIDE 79

Create your own style Emacs

  • Simple customization: GUI supported

◮ M-x customize-mode, M-x customize-group, etc 28

slide-80
SLIDE 80

Create your own style Emacs

  • Simple customization: GUI supported

◮ M-x customize-mode, M-x customize-group, etc

  • Useful Emacs packages and libraries:

◮ https://github.com/emacs-tw/awesome-emacs 28

slide-81
SLIDE 81

Create your own style Emacs

  • Simple customization: GUI supported

◮ M-x customize-mode, M-x customize-group, etc

  • Useful Emacs packages and libraries:

◮ https://github.com/emacs-tw/awesome-emacs

  • Write your own Emacs functions or packages:

◮ Need to be familiar with Emacs Lisp language ◮ Starting point: copy an existing function and modify it 28

slide-82
SLIDE 82

Be aware

29

slide-83
SLIDE 83

Be aware

  • Emacs pinky! Which key is used the most? How do you type it?

29

slide-84
SLIDE 84

Be aware

  • Emacs pinky! Which key is used the most? How do you type it?

◮ Solution: use god-mode, hydra-mode, or a foot pedal! 29

slide-85
SLIDE 85

Be aware

  • Emacs pinky! Which key is used the most? How do you type it?

◮ Solution: use god-mode, hydra-mode, or a foot pedal!

  • Emacs bankruptcy: .emacs will be out of control one day

29

slide-86
SLIDE 86

Be aware

  • Emacs pinky! Which key is used the most? How do you type it?

◮ Solution: use god-mode, hydra-mode, or a foot pedal!

  • Emacs bankruptcy: .emacs will be out of control one day

◮ Solution: use Emacs starter kits 29

slide-87
SLIDE 87

Be aware

  • Emacs pinky! Which key is used the most? How do you type it?

◮ Solution: use god-mode, hydra-mode, or a foot pedal!

  • Emacs bankruptcy: .emacs will be out of control one day

◮ Solution: use Emacs starter kits

  • Ctrl-Alt-Backspace: don’t try it on your Linux

29

slide-88
SLIDE 88

Be aware

  • Emacs pinky! Which key is used the most? How do you type it?

◮ Solution: use god-mode, hydra-mode, or a foot pedal!

  • Emacs bankruptcy: .emacs will be out of control one day

◮ Solution: use Emacs starter kits

  • Ctrl-Alt-Backspace: don’t try it on your Linux

◮ Solution: sudo dpkg-reconfigure keyboard-configuration 29

slide-89
SLIDE 89

Be aware

  • Emacs pinky! Which key is used the most? How do you type it?

◮ Solution: use god-mode, hydra-mode, or a foot pedal!

  • Emacs bankruptcy: .emacs will be out of control one day

◮ Solution: use Emacs starter kits

  • Ctrl-Alt-Backspace: don’t try it on your Linux

◮ Solution: sudo dpkg-reconfigure keyboard-configuration

  • Malicious/bad code from third-party packages

29

slide-90
SLIDE 90

Be aware

  • Emacs pinky! Which key is used the most? How do you type it?

◮ Solution: use god-mode, hydra-mode, or a foot pedal!

  • Emacs bankruptcy: .emacs will be out of control one day

◮ Solution: use Emacs starter kits

  • Ctrl-Alt-Backspace: don’t try it on your Linux

◮ Solution: sudo dpkg-reconfigure keyboard-configuration

  • Malicious/bad code from third-party packages

◮ Solution: do not use if they looks suspicious 29

slide-91
SLIDE 91

Be aware

  • Emacs pinky! Which key is used the most? How do you type it?

◮ Solution: use god-mode, hydra-mode, or a foot pedal!

  • Emacs bankruptcy: .emacs will be out of control one day

◮ Solution: use Emacs starter kits

  • Ctrl-Alt-Backspace: don’t try it on your Linux

◮ Solution: sudo dpkg-reconfigure keyboard-configuration

  • Malicious/bad code from third-party packages

◮ Solution: do not use if they looks suspicious

  • Emacs customization may be addicted

29

slide-92
SLIDE 92

Be aware

  • Emacs pinky! Which key is used the most? How do you type it?

◮ Solution: use god-mode, hydra-mode, or a foot pedal!

  • Emacs bankruptcy: .emacs will be out of control one day

◮ Solution: use Emacs starter kits

  • Ctrl-Alt-Backspace: don’t try it on your Linux

◮ Solution: sudo dpkg-reconfigure keyboard-configuration

  • Malicious/bad code from third-party packages

◮ Solution: do not use if they looks suspicious

  • Emacs customization may be addicted

◮ Solution: positive thinking – it could be fun! 29

slide-93
SLIDE 93

Conclusion

30

slide-94
SLIDE 94

Conclusion

  • Introduce the versatility of Emacs and how to get started

30

slide-95
SLIDE 95

Conclusion

  • Introduce the versatility of Emacs and how to get started
  • Advantages:

30

slide-96
SLIDE 96

Conclusion

  • Introduce the versatility of Emacs and how to get started
  • Advantages:

◮ Editor + file manager, project manager, terminal, multimedia, etc 30

slide-97
SLIDE 97

Conclusion

  • Introduce the versatility of Emacs and how to get started
  • Advantages:

◮ Editor + file manager, project manager, terminal, multimedia, etc ◮ Big and active community 30

slide-98
SLIDE 98

Conclusion

  • Introduce the versatility of Emacs and how to get started
  • Advantages:

◮ Editor + file manager, project manager, terminal, multimedia, etc ◮ Big and active community

  • Should you use Emacs?

30

slide-99
SLIDE 99

Conclusion

  • Introduce the versatility of Emacs and how to get started
  • Advantages:

◮ Editor + file manager, project manager, terminal, multimedia, etc ◮ Big and active community

  • Should you use Emacs?

◮ Depends on personal taste but Emacs is worth to be given a try! 30

slide-100
SLIDE 100

Conclusion

  • Introduce the versatility of Emacs and how to get started
  • Advantages:

◮ Editor + file manager, project manager, terminal, multimedia, etc ◮ Big and active community

  • Should you use Emacs?

◮ Depends on personal taste but Emacs is worth to be given a try!

Thank you!

30

slide-101
SLIDE 101

Conclusion

  • Introduce the versatility of Emacs and how to get started
  • Advantages:

◮ Editor + file manager, project manager, terminal, multimedia, etc ◮ Big and active community

  • Should you use Emacs?

◮ Depends on personal taste but Emacs is worth to be given a try!

Thank you! Questions?

30