From 9fb49240d61f73d657947f70745ffc01b9e52dc1 Mon Sep 17 00:00:00 2001 From: Tristan Cacqueray Date: Fri, 27 Sep 2024 12:17:23 -0400 Subject: [PATCH] Add emacs tutorial --- content/emacs/media/emacs-tut-quick-help.png | Bin 0 -> 55689 bytes content/emacs/tutorial.md | 113 +++++++++++++++++++ content/project/devenv.md | 2 +- content/zettle/softwares/emacs.md | 11 -- 4 files changed, 114 insertions(+), 12 deletions(-) create mode 100644 content/emacs/media/emacs-tut-quick-help.png create mode 100644 content/emacs/tutorial.md diff --git a/content/emacs/media/emacs-tut-quick-help.png b/content/emacs/media/emacs-tut-quick-help.png new file mode 100644 index 0000000000000000000000000000000000000000..a8210f3c049115ed0ed6184930c263b64539733f GIT binary patch literal 55689 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 VXEgEEn4;iIM)K5&l;ir>{|}h6fP(-4 literal 0 HcmV?d00001 diff --git a/content/emacs/tutorial.md b/content/emacs/tutorial.md new file mode 100644 index 000000000..64a53b695 --- /dev/null +++ b/content/emacs/tutorial.md @@ -0,0 +1,113 @@ +--- +title: Emacs Tutorial +tags: [emacs] +--- + +There are many tutorials, but this one is mine. + +## History + +To put things into perspective, Emacs started in 1976 as a set of macros for the Tape Editor and Corrector (TECO). +GNU Emacs began in 1984 as a true Lisp interpreter, and it is among the oldest free and open source projects still under development. + +## Start + +Start Emacs in the terminal like this: `emacs -nw [file]`. +You can ensure a clean start using the `-Q` option. + +Emacs keybindings use the alt and ctrl modifier like this: + +- `M-x` means press alt+x. `M` stands for *meta*, and it is the *alt* key on PC keyboard. +- `C-x 1` means press ctrl+1, release ctrl then press 1. +- `C-h C-q` means press ctrl+h then ctrl+q. You can also maintain ctrl while pressing h then q. + +When you are stuck or if you want to exit a menu, hit `C-g` multiple time to stop what emacs is doing. +If you ever need to quit emacs, hit `C-x C-c`, but you shouldn't do that :). + +After starting Emacs, run the `help-quick` command by pressing `C-h C-q`, your terminal will look like this: + +![emacs-tut-quick-help](media/emacs-tut-quick-help.png) + +At the bottom you now have a helpful quick help window to show you the essential commands. +Once you are comfortable, just close it by running the same command again. + +## Cursor movements + +In this section I introduce how to move the cursor, also called *point*. + +You can use the arrow keys and HOME END PageUp PageDown. + +Here is how to move the cursor: + +| *Key* | *Command* | *Description* | +|---------------------------------------|------------------------|----------------------------------------------------------| +| `C-a` or HOME | move-beginning-of-line | Move point to visible beginning of current logical line. | +| `C-e` or END | move-end-of-line | Move point to end of current line as displayed. | +| `C-f` or | forward-char | Move forward to the next character. | +| `M-f` or ctrl+ | forward-word | Move forward to the next word. | +| `C-b` or | backward-char | Move backward to the previous character. | +| `M-b` or ctrl+ | backward-word | Move backward to the previous word. | +| `C-p` or | previous-line | Move vertically up | +| `M-{` | backward-paragraph | Move backward to start of paragraph. | +| `C-n` or | next-line | Move vertically down | +| `M-}` | forward-paragraph | Move forward to end of paragraph. | +| `M->` | end-of-buffer | Move point to the end of the buffer. | +| `M-<` | beginning-of-buffer | Move point to the beginning of the buffer. | +| `C-v` or PageDown | scroll-up-command | Scroll text of selected window upward. | +| `M-v` or PageUp | scroll-down-command | Scroll text of selected window down. | + +> Note that these keys mostly works by default with readline (e.g. in bash). + +That cover 99% of my cursor movement needs, and with a little practices it's easy to get used to. In particular, notice how ctrl is used for short move while alt makes longer move. + +Checkout the `M-x help-with-tutorial` to get some practice. + +## Window navigation + +In this section I introduce how to manage the window layout. + +| *Key* | *Command* | *Description* | +|---------|----------------------|------------------------------------------------------| +| `C-x 1` | delete-other-windows | Make WINDOW fill its frame. | +| `C-x 2` | split-window-below | Split WINDOW into two windows, one above the other. | +| `C-x 3` | split-window-right | Split WINDOW into two side-by-side windows. | +| `C-x 0` | delete-window | Delete WINDOW. | +| `C-x o` | other-window | Select another window in cyclic ordering of windows. | +| `C-x b` | switch-to-buffer | Display buffer in the selected window. | + +To move between windows, run `M-x windmove-default-keybindings` to use shift+arrows for moving the cursor to another window. + +## File + +In this section I introduce how to open and save a file. + +| *Key* | *Command* | *Description* | +|-----------|-------------|--------------------------------------------------| +| `C-x C-f` | find-file | Edit file FILENAME. | +| `C-x C-s` | save-buffer | Save current buffer in visited file if modified. | +| `C-x k` | kill-buffer | Kill the buffer specified by BUFFER. | + +## Customization + +In this section I introduce how to customize behaviors. + +## Configuration + +In this section I introduce how to persist configuration to your `~/.emacs.el` file. + +```scheme +;; Do not ask for permission to kill a buffer +(global-set-key (kbd "C-x k") 'kill-current-buffer) +``` + +## Package + +In this section I introduce how to install packages. + +## Language server + +In this section I introduce language server. + +## Magit + +In this section I introduce how to git. diff --git a/content/project/devenv.md b/content/project/devenv.md index 4fca94ece..7df1cbd6d 100644 --- a/content/project/devenv.md +++ b/content/project/devenv.md @@ -6,6 +6,6 @@ tags: [nix] Provide the best in class developer experience for [[programing-languages]] enthusiast. -It integrates an [[emacs]] distribution. +It integrates an [[softwares/emacs]] distribution. Source: https://github.com/podenv/devenv diff --git a/content/zettle/softwares/emacs.md b/content/zettle/softwares/emacs.md index 30a7da150..3af611495 100644 --- a/content/zettle/softwares/emacs.md +++ b/content/zettle/softwares/emacs.md @@ -18,17 +18,6 @@ My configuration is mostly provided by [[devenv]] and customized in my [dot-file | C-h v | check variable doc | | C-h m | check mode doc | -## Navigation - -| **key** | **info** | -|---------|--------------------------| -| C-x 1 | fullscreen frame | -| C-x 2 | split frame horizontally | -| C-x 3 | split frame vertically | -| C-x 0 | close current frame | -| C-x o | move between frame | -| C-x b | switch buffer | - ## Commands | **key** | **info** |