#+TODO: | DISABLED(d) #+STARTUP: overview #+TITLE: Meine Emacs-Konfiguration * Benutzerangaben Name und Emailadresse #+BEGIN_SRC emacs-lisp (setq user-full-name "Ariane Troche") (setq user-mail-address "ariane@familie-troche.de") #+END_SRC * Start ** Startfenster Einige Einstellungen, die den Startbildschirm betreffen: *** Splash Screen Der übliche Emacs-Startbildschirm soll nicht angezeigt werden. Damit öffnet sich direkt der scratch-Buffer, welcher komplett leer sein soll. #+BEGIN_SRC emacs-lisp (setq inhibit-splash-screen t) (setq initial-scratch-message nil) #+END_SRC *** Scrollbar, Toolbar, Menubar Scrollbar, Toolbar und Menubar werden ausgeblendet. #+BEGIN_SRC emacs-lisp (scroll-bar-mode -1) (tool-bar-mode -1) (menu-bar-mode -1) #+END_SRC *** Vollbildschirm Das Fenster wird im Vollbild geöffnet. #+BEGIN_SRC emacs-lisp (setq initial-frame-alist '((fullscreen . maximized))) #+END_SRC ** Server Damit beim Start von Emacs nicht immer ein neuer Prozess gestartet wird, wird Emacs hier schon als Server aufgesetzt. [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Emacs-Server.html][Using Emacs as a Server]] #+BEGIN_SRC emacs-lisp (server-start) #+END_SRC ** Backup und Autosave Die Backup- und Autosave-Dateien stören eher, da ich sie noch nie gebraucht habe, sollen sie erst gar nicht angelegt werden. #+BEGIN_SRC emacs-lisp (use-package no-littering :config (with-eval-after-load 'recentf (add-to-list 'recentf-exclude no-littering-var-directory) (add-to-list 'recentf-exclude no-littering-etc-directory)) (setq auto-save-file-name-transforms ; autosaved-file-name~ `((".*" ,(no-littering-expand-var-file-name "auto-save/") t)) custom-file (no-littering-expand-etc-file-name "custom.el")) (if (file-exists-p custom-file) (load-file custom-file))) #+END_SRC * Konfigurationsdatei ** Konfigurationsdatei Ich bastel sehr gerne an meiner Konfigurationsdatei herum. Mit kann ich sie ganz schnell öffnen und mit neu laden. | Key | Funktion | |-----+----------------------------------------------| | F1 | Öffne Konfigurationsdatei in anderem Fenster | | F2 | Konfiguration neu laden, ohne Emacs-Neustart | #+BEGIN_SRC emacs-lisp ;; Pfade (setq my/file-init (expand-file-name "init.el" user-emacs-directory)) (setq my/file-config (expand-file-name "config.org" user-emacs-directory)) ;; Öffnen (defun my/find-config-file () "Edit my init file in another window." (interactive) (find-file my/file-config)) ;; Laden (defun my/reload-emacs-configuration () "Reload init.el" (interactive) (load-file my/file-init)) ;; Keys (global-set-key (kbd "") 'my/find-config-file) (global-set-key (kbd "") 'my/reload-emacs-configuration) #+END_SRC ** Neustart Mit kann ich Emacs neu starten. | Key | Funktion | |-----+----------------| | F12 | Emacs-Neustart | #+BEGIN_SRC emacs-lisp (use-package restart-emacs :ensure t :bind ("" . 'restart-emacs)) #+END_SRC * Magit Magit ist ein git-Client für Emacs: [[https://magit.vc/manual/magit/#Top][Magit User Manual]] #+BEGIN_SRC emacs-lisp (use-package magit :bind ("C-x g" . magit-status)) #+END_SRC * Fenster ** teilen Funktionen/Tastenkombination um neue Fenster zu erzeugen. Wenn ein neues Fenster erzeugt wird auch direkt dahin wechseln. | Key | Funktion | |-----+--------------------------------| | C-1 | Alle anderen Fenster schließen | | C-2 | Neues Fenster unterhalb | | C-3 | Neues Fenster daneben | #+BEGIN_SRC emacs-lisp (defun artr/split-window-below-and-switch () "Split the window below, then switch to the new window." (interactive) (split-window-below) (other-window 1)) (defun artr/split-window-right-and-switch () "Split the window right, then switch to the new window." (interactive) (split-window-right) (other-window 1)) (global-set-key (kbd "C-1") 'delete-other-windows) (global-set-key (kbd "C-2") 'artr/split-window-below-and-switch) (global-set-key (kbd "C-3") 'artr/split-window-right-and-switch) #+END_SRC ** wechseln [[https://github.com/abo-abo/ace-window][ace-window]] Bei mehr als 2 Fenstern in der Konfiguration werden die Fenster "durchnummeriert". So können Aktionen gezielt durchgeführt werden. Die möglichen Aktionen werden mit ? aufgelistet. Bei 2 Fenstern wird das Fenster einfach gewechselt. | Key | Funktion | |-----+-----------------------------------------| | M-o | ace-windows (? zeigt mögliche Aktionen) | | M-O | ace-swap-windows | #+BEGIN_SRC emacs-lisp (use-package ace-window :init (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l) aw-scope 'frame) :bind (("M-o" . ace-window) ("M-O" . ace-swap-window))) #+END_SRC ** anordnen | Key | Funktion | |-------------+--------------------------------| | C-c | vorherige Fensterkonfiguration | | C-c | nächste Fensterkonfiguration | #+BEGIN_SRC emacs-lisp (use-package winner :config (winner-mode)) #+END_SRC [[https://depp.brause.cc/eyebrowse/][eyebrowse]] Es können Fensterkonfigurationen angelegt und wiederhergestellt werden. Das Speichern der Konfigurationen passiert in sogenannten Slots, die von 0,... durchnummeriert werden. Mit C-c w 0 kann dann direkt die zugehörige Konfiguration wiederhergestellt werden. | Key | Funktion | |---------+-------------------------------| | C-c w | key-map | | C-c w n | neue Fensterkonfiguration | | C-c w . | Fensterkonfiguration wechseln | | C-c w , | Fensterkonfiguration benennen | #+BEGIN_SRC emacs-lisp (use-package eyebrowse :bind (("C-c w ." . eyebrowse-switch-to-window-config) ("C-c w ," . eyebrowse-rename-window-config) ("C-c w DEL" . eyebrowse-close-window-config) ("C-c w k" . eyebrowse-close-window-config) ("C-c w n" . eyebrowse-create-window-config)) :init (setq eyebrowse-keymap-prefix (kbd "C-c w") eyebrowse-wrap-around t eyebrowse-mode-line-style 'always eyebrowse-mode-line-separator "|") (eyebrowse-mode t)) #+END_SRC ** bezeichnen Die Fenster werden mit "Projektname | Dateiname" bezeichnet. #+BEGIN_SRC emacs-lisp (setq-default frame-title-format '((:eval (let ((project-name (projectile-project-name))) (unless (string= "-" project-name) (format "%s| " project-name)))) "%b")) ; project-name| file-name #+END_SRC