From a64de72ae2013343962674023b227589b95c9285 Mon Sep 17 00:00:00 2001 From: Ariane Troche Date: Sat, 19 Dec 2020 12:12:49 +0100 Subject: [PATCH] =?UTF-8?q?emacs:=20Tools=20f=C3=BCr=20Fensterverwalung=20?= =?UTF-8?q?(ace-window,=20winner,=20eyebrowse)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.org | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 95 insertions(+), 4 deletions(-) diff --git a/config.org b/config.org index ad0128c..727f266 100644 --- a/config.org +++ b/config.org @@ -42,11 +42,21 @@ ** 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 - (setq make-backup-files nil) - (setq backup-directory-alist `((".*" . ,temporary-file-directory))) - (setq auto-save-file-name-transforms `((".*" ,temporary-file-directory t))) - #+END_SRC + (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. @@ -92,3 +102,84 @@ (use-package magit :bind ("C-x g" . magit-status)) #+END_SRC + +* Fensterverwaltung +** Splitting + 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 + +** Undo für Fensterkonfigurationen + | Key | Funktion | + |-------------+--------------------------------| + | C-c | vorherige Fensterkonfiguration | + | C-c | nächste Fensterkonfiguration | + + #+BEGIN_SRC emacs-lisp + (use-package winner + :config (winner-mode)) + #+END_SRC + +** Fenster 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 + +** Speichern und Wiederherstellen + [[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 "\C-cw" + eyebrowse-wrap-around t + eyebrowse-mode-line-style 'always + eyebrowse-mode-line-separator "|") + (eyebrowse-mode t)) + #+END_SRC