emacskurs/init.org

225 lines
4.8 KiB
Org Mode
Raw Normal View History

2024-09-25 11:34:09 +00:00
#+TITLE: Konfigurer din egen Emacs!
#+EMAIL: larstvei@ifi.uio.no
* Installer Emacs
+ Følg de offisielle instruksjonene
+ https://www.gnu.org/software/emacs/download.html
* Finn konfigurasjonsfilen
+ Emacs leter etter en Emacs Lisp fil den kan kjøre ved oppstart
+ =~/.emacs.el= (få bruker dette)
+ =~/.emacs=
+ =~/.emacs.d/init.el=
+ I den rekkefølgen
+ Se https://www.gnu.org/software/emacs/manual/html_node/emacs/Find-Init.html
+ For Windows + https://www.gnu.org/software/emacs/manual/html_node/emacs/Windows-HOME.html
* Sette variabler
+ Enkle konfigurasjoner gjøres ved å sette variabler
+ Få en mindre bråkete velkomst
#+begin_src emacs-lisp :tangle yes
;; Dette fjerner velkomstskjermen ved oppstart av Emacs.
(setq inhibit-splash-screen t)
#+end_src
+ Gi korte svar når Emacs ber om input
#+begin_src emacs-lisp :tangle yes
;; Emacs ber deg iblant svare "yes" eller "no". Dette gjør at Emacs
;; nøyer seg med "y" eller "n".
(setq use-short-answers t)
#+end_src
* Mindre distraksjoner ved å skru av modes
+ En blinkende peker blir fort gammelt
#+begin_src emacs-lisp :tangle yes
;; Skru av blinkende peker.
(blink-cursor-mode 0)
#+end_src
+ Andre GUI-elementer er også lite nyttig i et tastaturdrevet program!
#+begin_src emacs-lisp :tangle yes
;; Disse skrur av diverse GUI-elementer.
(menu-bar-mode 0)
(tool-bar-mode 0)
(scroll-bar-mode 0)
#+end_src
* Auto-revert
+ Vanligvis vil ikke Emacs automatisk oppdatere innholdet i et buffer når filen
endrer seg
+ I tillegg lagrer den «lås-filer» for å unngå at to programmer jobber på samme fil
+ Det kan være litt forvirrende, så la oss endre det
#+begin_src emacs-lisp :tangle yes
(global-auto-revert-mode)
(setq global-auto-revert-non-file-buffers t
create-lockfiles nil)
#+end_src
* Backup-filer
+ Emacs liker å lagre backupfiler, som kan være litt forkludrende
+ La oss gjemme de vekk
#+begin_src emacs-lisp :tangle yes
(setq backup-directory-alist `(("." . ,(locate-user-emacs-file "backups"))))
#+end_src
* Pakker
+ Det finnes utrolig mange pakker til Emacs
+ Legg til dette for å få tilgang til flere tusen pakker!
#+begin_src emacs-lisp :tangle yes
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
#+end_src
+ Den enkleste måten å ta i bruk en pakke er med =use-package=
#+begin_src emacs-lisp :tangle yes
;; (use-package my-package-name
;; :ensure t ; Ensure my-package is installed
;; :after foo ; Load my-package after foo is loaded (seldom used)
;; :init ; Run this code before my-package is loaded
;; :bind ; Bind these keys to these functions
;; :custom ; Set these variables
;; :config ; Run this code after my-package is loaded
#+end_src
* Vertikalt minubuffer
+ Pakken =vertigo= gir en mer oversiktlig måte å interagere med minibufferet
#+begin_src emacs-lisp :tangle yes
;; VERTical Interactive COmpletion
(use-package vertico
:ensure t
:config
(setq vertico-count 25)
(vertico-mode 1))
#+end_src
* Husk tidligere kommandoer
+ =savehist-mode= gjør at kommandoer du brukte nylig vises først
#+begin_src emacs-lisp :tangle yes
;; Save minibuffer history
(use-package savehist
:config
(savehist-mode 1))
#+end_src
* Navigering og søking
+ Pakken =consult= forbedrer mange kommandoer når du skal navigere og søke
#+begin_src emacs-lisp :tangle yes
(use-package consult
:ensure t
:bind ("C-x b" . consult-buffer)
:config
(setq consult-preview-key (list :debounce 0.1 'any)))
#+end_src
* Tidligere besøkte filer
+ Emacs har såklart en mode for å tilgjengeliggjøre nylig besøkte filer
#+begin_src emacs-lisp :tangle yes
(recentf-mode t)
(setq recentf-max-saved-items 1000)
#+end_src
2024-09-25 11:34:09 +00:00
* Which-key
+ =which-key= er en pakke som hjelper deg finne tastekombinasjoner
#+begin_src emacs-lisp :tangle yes
;; Display available keybindings in popup
(use-package which-key
:ensure t
:config (which-key-mode 1))
#+end_src
* Fargetema!
+ Du kan Style emacs som du vil
+ Se https://emacsthemes.com/
+ Pakken =ef-themes= har mange gode fargetemaer
2024-09-25 11:43:47 +00:00
2024-09-25 11:34:09 +00:00
#+begin_src emacs-lisp :tangle yes
(use-package ef-themes
:ensure t
:config
(ef-themes-select 'ef-light))
#+end_src
+ Bruk =M-x consult-theme= for å teste ut ulike fargetemaer!
2024-09-25 11:43:47 +00:00
* Programmering
+ /Noen/ liker linjenummere
#+begin_src emacs-lisp :tangle yes
(add-hook 'prog-mode-hook 'display-line-numbers-mode)
#+end_src
+ /Noen/ liker også relative linjenummere
#+begin_src emacs-lisp :tangle yes
(setq display-line-numbers-type t)
#+end_src
+ /Alle/ liker å se hvor en parentes starter og slutter
#+begin_src emacs-lisp :tangle yes
(show-paren-mode 1)
#+end_src