225 lines
4.8 KiB
Org Mode
225 lines
4.8 KiB
Org Mode
#+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
|
||
|
||
* 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
|
||
|
||
#+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!
|
||
|
||
* 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
|