User Tools

Site Tools


presentations:introduction_to_emacs

Presentation

Planning

Goals

Aiming for 30 minutes, so these have to fit within that.

  • elisp/emacs primer
    • setq, types (t, nil), quote/unquote
    • major/minor modes, hooks
  • Semi-comfortable
    • Good colorschemes
    • Annoyances handled
      • Code indentation
  • Aware of basic keysequences and commands with pointers to learn more and practice.
  • Aware of how to use the built-in help facilities to learn about the editor and remind themselves.
    • Help, Info, describe-*, …
  • Aware of how to install/configure additional packages.
  • Configs for particular languages
    • ??? Cover configuring the basics/general aspects of configuring the editor for a new language.
    • Have basic configs for popular languages, or at least mention the recommended packages for popular languages.
      • Target languages should be those taught in the CS courses
      • Java, C/C++, Rust, Racket, Python, OCaml, Ruby, Markdown, JS
  • Compare and contrast to other editors audience may be familiar with.
    • Should probably compare to VS Code
  • Big ideas
    • Everything is a buffer
      • Everything uses the same keybinds.
    • ??? Literate programming. We may be using a literate Org file for the config. Not an Emacs-specific idea so maybe don't go into too much detail.
    • ??? Interacting with REPLs? SLIME-style REPLs?
    • ??? Everything in Emacs. Maybe at least mention the possibilities, while emphasizing that it is not necessary to have a good experience.
      • Email

Inspiration

Ideas for configs to cover

Might not cover all of them verbally, but should be in supplementary materials.

  • setting indentation settings. Changing them per-mode. e.g. c-basic-offset variable. tab-width variable. indent-tabs-mode?
  • custom-file variable? Storing config made through the customizations system in a different file than init.el?
  • delete-by-moving-to-trash variable
  • Backup files. I think the default is FILENAME~, which can be annoying.
  • global-display-line-numbers-mode
  • sentence-end-double-space variable
  • Interactions with system clipboard.
  • winner-mode?
  • font configuration
  • colorscheme
    • Have 2-6 good colorschemes configured by default in the sample config.
    • Prot's themes have gotten lots of attention recently due to their detail and accessibility:
      • ef-themes
      • modus-themes
      • standard-themes

Ideas for concepts to cover

  • Managing, storing, version controlling, backing up configs and dotfiles?
    • Maybe out of scope but should at least mention it.
  • Customization system
  • Help system, info system, other docs.
  • Built-in tutorial
  • Recommended external information resources.
  • Defining your own keybindings
  • Installing and configuring packages.

Ideas for packages to cover

  • use-package
  • which-key
  • Some search/completion package like Vertico and friends?
  • magit
  • org-mode
  • evil-mode
  • cua-mode
  • eglot / LSP stuff (requires installing LSPs separately)
  • tab-completion (corfu / company)
  • tree-sitter (requires installing tree-sitter binaries separately)
  • built-ins: eww, dired, tramp, games

Miscellaneous ideas

  • Mention Wayland stuff in case people have blurriness? Linux users are rare but Ubuntu has Wayland as default so some might face this issue.
    • solution is to use PGTK build in emacs 29+
  • Make sure instructions work or at least are likely to work for Windows and macOS.
    • TODO: Where are Emacs configs stored on Windows?
presentations/introduction_to_emacs.txt · Last modified: 2024/08/25 21:24 by admin