Emacs Cheatsheet¶
Überblick¶
GNU Emacs ist ein erweiterbarer, anpassbarer, freier/libre Texteditor -- und mehr. Kern ist ein Dolmetscher für Emacs Lisp, ein Dialekt der Lisp Programmiersprache mit Erweiterungen zur Unterstützung der Textbearbeitung.
Grundkonzepte¶
Schlüsselanmeldung¶
C-x # Ctrl + x
M-x # Alt + x (or Esc then x)
C-M-x # Ctrl + Alt + x
S-x # Shift + x
```_
### Terminologie
## Anpassung
### Grundkonfiguration (.emacs oder init.el)
```elisp
;; Basic settings
(setq inhibit-startup-message t)
(setq make-backup-files nil)
(setq auto-save-default nil)
;; UI improvements
(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1)
(global-linum-mode 1)
(show-paren-mode 1)
;; Indentation
(setq-default indent-tabs-mode nil)
(setq-default tab-width 4)
;; Key bindings
(global-set-key (kbd "C-x g") 'goto-line)
(global-set-key (kbd "C-c c") 'comment-region)
(global-set-key (kbd "C-c u") 'uncomment-region)
;; Theme
(load-theme 'wombat t)
```_
### Paketmanagement
```elisp
;; Package repositories
(require 'package)
(add-to-list 'package-archives
'("melpa" . "https://melpa.org/packages/") t)
(package-initialize)
;; Install packages
(unless (package-installed-p 'use-package)
(package-refresh-contents)
(package-install 'use-package))
;; Use-package examples
(use-package magit
:ensure t
:bind ("C-x g" . magit-status))
(use-package company
:ensure t
:config
(global-company-mode))
```_
## Org-Modus
### Standard Org Modus
- List item
- Sub item
- Numbered list
- Second item
bold /italic/ underlined =code= verbatim
[[link][description]] [[file:path/to/file.txt]] [[https://example.com]]
TAB # Cycle visibility S-TAB # Global cycle visibility C-c C-t # Toggle TODO state C-c C-s # Schedule item C-c C-d # Set deadline C-c a # Agenda C-c c # Capture C-c C-e # Export+TODO: TODO IN-PROGRESS|DONE CANCELLED¶
- TODO Learn Emacs
- IN-PROGRESS Write documentation
- DONE Install Emacs
- CANCELLED Old project C-x d # Open Dired RET # Open file/directory ^ # Go to parent directory g # Refresh m # Mark file u # Unmark file U # Unmark all d # Mark for deletion x # Execute deletions C # Copy file R # Rename/move file D # Delete file
-
Create directory¶
m # Mark file u # Unmark file t # Toggle marks - s # Mark all
- % # Mark by regex
- . # Mark by extension
U # Unmark all
M-. # Find definition
M-, # Return from definition
C-M-f # Forward s-expression
C-M-b # Backward s-expression
C-M-u # Up list
C-M-d # Down list
C-M- # Indent region
C-c C-c # Comment region
M-; # Comment/uncomment line
C-x r t # Rectangle text (column editing)
M-x compile # Compile
C-x ` # Next error
M-g n # Next error
M-g p # Previous error
C-x ( # Start macro recording
C-x ) # End macro recording
C-x e # Execute macro
C-u C-x ( # Start macro with prefix
M-x name-last-kbd-macro # Name macro
M-x insert-kbd-macro # Insert macro into buffer
C-x r s # Save region to register
C-x r i # Insert register contents
C-x r SPC # Save point to register
C-x r j # Jump to register
C-x r m # Set bookmark
C-x r b # Jump to bookmark
C-x r l # List bookmarks
C-x v v # Version control next action
C-x v = # Show diff
C-x v l # Show log
C-x v ~ # Show specific version
C-x v g # Annotate (blame)
M-! # Shell command
M-|# Shell command on region
C-u M-! # Insert shell command output
M-x shell # Start shell
M-x eshell # Start Eshell
M-x term # Start terminal
cd # Change directory
ls # List files
pwd # Print working directory
clear # Clear screen
exit # Exit Eshell
C-g # Cancel current command M-x recover-session # Recover crashed session M-x toggle-debug-on-error # Debug errors M-x emacs-version # Check version C-x z # Repeat last command C-u # Universal argument (prefix) M-x # Execute command by name C-h k # Find out what a key does C-h f # Find out what a function does M-x occur # Show lines matching pattern M-x grep # Search files M-x rgrep # Recursive grep M-x find-name-dired # Find files by name M-x calendar # Calendar M-x calculator # Calculator ```_
## Nützliche Pakete ### Beliebte Pakete ```elisp ;; Ivy/Counsel/Swiper - completion framework (use-package ivy :ensure t :config (ivy-mode 1)) ;; Magit - Git interface (use-package magit :ensure t :bind ("C-x g" . magit-status)) ;; Company - completion (use-package company :ensure t :config (global-company-mode)) ;; Projectile - project management (use-package projectile :ensure t :config (projectile-mode)) ;; Which-key - key binding help (use-package which-key :ensure t :config (which-key-mode)) ```_ ## Fehlerbehebung ### Gemeinsame Themen
Ressourcen¶
- Amtshandbuch: gnu.org/software/emacs/manuell
- **Emacs Wiki*: [emacswiki.org](LINK_3_
- ** Paketarchiv**: [melpa.org](LINK_3__
- Tutorial:
C-h t
innerhalb von Emacs