diff --git a/README.org b/README.org deleted file mode 100644 index 02f7634..0000000 --- a/README.org +++ /dev/null @@ -1,25 +0,0 @@ -* Emacskurs vår 2015 - - Her ligger kildekoden til alt kursmaterialet for kurset. Kurset arrangeres - av [[http://fui.ifi.uio.no/][Fagutvalget ved Institutt for informatikk]], og holdes på Institutt for - Informatikk i Simula, Tirsdag 17. Mars kl. 16:15. - - Her er en oversikt over hva de forskjellige filene er: - - - [[./emacs-init.el][emacs-init.el]] - en enkel konfigurasjonsfil. - - [[./slides.org][slides.org]] - org-filen som foilene genereres fra. - - [[./handout.org][handout.org]] - org-filen handouts genereres fra. - - [[./index.org][index.org]] - org-filen som kursets nettside genereres fra. - - Du finner alt materiale på [[http://folk.uio.no/larstvei/emacskurs/][kursets nettside]] (som er generert fra - ~index.org~). Merk at GitHub har støtte for å vise ~.org~-filer, så du kan - lese alt materiale her på GitHub. - -* Lisens - -#+BEGIN_HTML - Creative Commons-lisens
-#+END_HTML - - Dette verk er lisensieret under en [[http://creativecommons.org/licenses/by-sa/4.0/][Creative Commons - Navngivelse-DelPåSammeVilkår 4.0 Internasjonal lisens]]. diff --git a/handout.org b/handout.org index f56ac91..391272e 100644 --- a/handout.org +++ b/handout.org @@ -1,3 +1,5 @@ +#+OPTIONS: html-style:nil + |---------------------+------------------------------| | Tastekombinasjon | Beskrivelse | |---------------------+------------------------------| diff --git a/idemyldring.org b/idemyldring.org deleted file mode 100644 index 7417a2c..0000000 --- a/idemyldring.org +++ /dev/null @@ -1,350 +0,0 @@ -#+PROPERTY: header-args:emacs-lisp :noweb yes - -Jeg har brukt Org for å kunne beskrive tanker og idéer +uten+ kludrete -+kommentarer+. - -* Tanker og noter - -+ For å la det føles naturlig å gå inn og legge til eller endre, er nok - naturlige inndelinger viktig. -+ Skal vi utforme =early-init.el= òg? -+ Skal vi anbefale dem å kompilere =init.el=? - * Skal vi i så fall nevne =sharpquote= (=#'=)? -+ Bør vi anbefale =consult=? - * ~consult-theme~ gjør det enkelt å raskt bytte mellom tema. Det kan gi et - godt førsteinntrykk ... - * ~consult-buffer~, ~consult-line~, ~consult-imenu~ ... -+ ~vertico~ og ~marginalia~​(?) må finne sin plass. -+ Samspillet mellom deamon, auto-revert og lockfiles - * lockfiles blir nok et forvirringsmoment (de var det for meg) -+ Bør vi se etter en subtil måte å sette indenteringspreferanser på? - * Tab som default - * Mellomrom i LISP - -* Filen selv - -Jeg har forsøkt å bruke inndelinger og kalle ~package-install~ eller -~use-pacakge~ ved hver inndeling i stedet for å hope dem opp på ett sted, så får -de mer innsikt i hvordan ting henger sammen, og det blir lettere å finne ting. - -#+begin_src emacs-lisp :tangle init-forslag.el -;;; init-forslag.el -- Forslag til init.el -*- lexical-binding: t -*- - -;; Noen info om filens opphav. -;; - Hvem som skrev + epost? -;; - Lenke til repoet så de kan finne det igjen. - -;;; Commentary: - -;; Sammenfatting av hva vi har tatt med, og kort om hva vi har -;; vektlagt. Vi kan nevne her at vi legger vekt på IN2040. - -;;; Code: - - -;;; Grunnleggende oppsett - -<> - - -;;; Filer og buffere - -<> - - -;;; Hjelp og dokumentasjon - -<> - - -;;; Annen programmering - -<> - - -;;; LISP - -<> - -;;; init-forslag.el ends here -#+end_src - -* Grunnleggende -:PROPERTIES: -:header-args:emacs-lisp: :noweb-ref grunnleggende -:END: - -Her har jeg lagt inn ting som gjelder Emacs fremfor programmering. Overskriften -bør kasnkje byttes, for det er ikke usannsynlig at det er her =consult= kan høre -hjemme. - -#+begin_src emacs-lisp -;; 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) - -;; Dette fjerner velkomstskjermen ved oppstart av Emacs. -(setq inhibit-splash-screen t) - -#+end_src - -Vi bør kanskje gi en kort forklaring av hva custom gjør: Holder på enkelte -verdier mellom sessions. Vi - -#+begin_src emacs-lisp -(setq custom-file (expand-file-name "custom.el" user-emacs-directory)) -(load custom-file t t) - -#+end_src - -** Oppsett for pakker - -#+begin_src emacs-lisp -;;;; Installering av tredjepartspakker - -#+end_src - -Jeg har aldri brukt =package.el= eller ~use-package~ (har alltid håndtert ting -manuelt og byttet nylig til =straight.el=) - -~package-initialize~ er autoloaded, så vi trenger ikke ~(require 'package)~. -Det kan ha pedagogisk hensikt å inkludere, da, for autoload er et konsept som -ikke alltid føles naturlig ... - -#+begin_src emacs-lisp -(require 'package) -(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) -(unless package-archive-contents - (package-refresh-contents)) -(package-initialize) - -#+end_src - -*** ~use-package~ - -Konfig-generatoren har denne tingen med, og en liten forklaring som dette er -betraktelig vennligere for en nybegynner enn [[help:use-package][dokumentasjonen]] ... - -#+begin_src emacs-lisp -;; (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 - -** Oppsett for egen elisp - -Hvis de skriver egen LISP, bør vi kanskje ha med dette så kompilering ikke -forvirrer resultatet ... - -#+begin_src emacs-lisp -(setq load-prefer-newer t) - -#+end_src - -** Tema - -#+begin_src emacs-lisp -;;;; Tema og farger - -#+end_src - -Det er nok en god idé å installere begge tema så det er raskere å bytte mellom. - -#+begin_src emacs-lisp -;; Vi har foreslått et mørkt og et lyst tema: -(package-install 'monokai-theme) -(package-install 'leuven-theme) - -;; Avkommenter for å bruke foreslått mørkt tema: -;; (load-theme 'monokai t) - -;; Avkommenter for å bruke foreslått lyst tema: -;; (load-theme 'leuven t) - -#+end_src - -** GUI-elementer - -#+begin_src emacs-lisp -;;;; GUI-elementer - -#+end_src - -Jeg er enig i at scroll-, tool- og menu-bar bør skrus av. Jeg er veldig enig i -at ~blink-cursor-mode~ bør være av for menneskets velbehag, men har merket av -folk har sterkere meninger der. Jeg tenker at vi foreslår det ... - -#+begin_src emacs-lisp -;; Skru av blinkende peker. -(blink-cursor-mode 0) - -;; Disse skrur av diverse GUI-elementer. -(menu-bar-mode 0) -(tool-bar-mode 0) -(scroll-bar-mode 0) - -#+end_src - -* Filer og buffere -:PROPERTIES: -:header-args:emacs-lisp: :noweb-ref filer-og-buffere -:END: - -Her må vi vurdere hvor mye vi vil ha med. Jeg har lagt til ~recentf-mode~, men -vi kan vurdere ~consult-buffer~, ~ibuffer~ og =project.el=. - -#+begin_src emacs-lisp -;; For at Emacs skal huske hvor peker var da du sist lukket en fil. -(save-place-mode) - -#+end_src - -Uten ~consult-buffer~, må kommandoen ~recentf~ brukes, og den er ikke bundet til noe. - -#+begin_src emacs-lisp -(recentf-mode) -(setq recentf-max-saved-items 199 - recentf-auto-cleanup 300) - -#+end_src - -~ffap~ (/find-file-at-point/) gjør at ~find-file~ med peker på et filnavn bruker -det filnavnet som default. - -#+begin_src emacs-lisp -;; Med dette vil Emacs hvis peker er på et filnavn når du bruker -;; `find-file-at-point', foreslå å åpne den filen. -(ffap-bindings) - -#+end_src - -** Navn på filer og buffere - -Er det en god idé å gi dem en tast til å gi en fil de besøker nytt navn? Jeg -husker at jeg lette en del etter noe slikt da jeg begynte. - -#+begin_src emacs-lisp -(keymap-set ctl-x-x-map "R" #'rename-visited-file) - -#+end_src - -Uniquify gjør det lettere å se forskjell på buffere med samme navn. Jeg har -tatt med instillingene fra min egen config. De gir formatet -=buffernavn |kontekst=. - -#+begin_src emacs-lisp -(setq uniquify-buffer-name-style 'post-forward - uniquify-strip-common-suffix t - uniquify-separator " |" - uniquify-after-kill-buffer-p t - uniquify-ignore-buffers-re "^\\*") -#+end_src - -** Auto-revert og lock-files - -Hvordan vi håndterer auto-revert avhenger vel litt av hvordan vi presenterer -"lockfiles". "Lockfiles" er noe som forvirrer - -#+begin_src emacs-lisp -(global-auto-revert-mode) -(setq global-auto-revert-non-file-buffers t - create-lockfiles nil) - -#+end_src - -** Backups - -Jeg tenker at vi ikke snakker for mye om backups, men kanskje legger inn denne -linjen, for backups legges per default inn i samme mappen som filen, og det kan -være like plagsomt som det føles rotete ... - -#+begin_src emacs-lisp -backup-directory-alist `(("." . ,(locate-user-emacs-file "backups"))) -#+end_src - -* Hjelp og dokumentasjon -:PROPERTIES: -:header-args:emacs-lisp: :noweb-ref docs -:END: - -Jeg tenker det er viktig at vi får frem Emacs' /selvdokumenterende natur/. - -** which-key og tastetrykk - -~which-key~ er innebygd fra og med [[file:~/src/share/emacs/31.0.50/etc/NEWS.30::New package 'which-key'.][Emacs 30]]. Hvis vi skal ha det med, foreslår -jeg denne kombinajonen av innstillinger for ~which-key~ og ~echo-keystrokes~ for -å gi et responsivt, men ikke bråkete inntrykk, og med ~which-key~ alltid lett -tilgjengelig for oversikt. - -#+begin_src emacs-lisp -(setq which-key-show-early-on-C-h t - which-key-idle-delay 600) -(setq echo-keystrokes 0.1) -(setq echo-keystrokes-help nil) - -#+end_src - - -** Helpful - -Jeg tror det kan være en god idé å bruke ~helpful~, for informasjonen det gir, -tydeliggjør at Emacs er satt sammen av funksjoner og variable vi kan fly rundt -og skrive om. Når jeg selv hacker på Emacs, er nesten all kildekodeinteraksjon -gjennom helpful ... - -Helpful har dessuten en liste av keymaps hver kommando er bundet til. Generelt -gjør helpful Emacs veldig transparent. :D - -Jeg tenker at det er en god idé å binde disse til taster: -+ ~helpful-callable~ -+ ~help-variable~ -+ ~helpful-symbol~ -+ ~helpful-key~ -+ ~helpful-at-point~ - -~helpful-at-point~ har jeg selv stor glede av ... - -* Generelt for prog-mode -:PROPERTIES: -:header-args:emacs-lisp: :noweb-ref prog-mode -:END: - -Bør få med: -+ ~corfu~ - * ~kind-icon~ (virker det på non-u*ix?) -+ ~eglot~ - -Det er sikkert noen som vil ha linjenummer i margen. Folk som kommer fra =vim=, -har jeg inntrykk av at pleier å ville ha relative tall på talllinjen. - -#+begin_src emacs-lisp -(setq display-line-numbers-type t) -;; (setq display-line-numbers-type 'relative) -(add-hook 'prog-mode-hook #'display-line-numbers-mode) - -#+end_src - -* LISP -:PROPERTIES: -:header-args:emacs-lisp: :noweb-ref lisp -:END: - -Vi bør nok separere Scheme og elisp, men dette gjelder for begge. Paredit kan -være noe stort for en introduksjon, men ~electric-pair-mode~ lar oss det minste -sette inn balanserte par. - -#+begin_src emacs-lisp -;; Automatically insert closing parens -(electric-pair-mode) - -;; Visualize matching parens -(show-paren-mode 1) -;; (setq show-paren-delay 0 -;; show-paren-style 'parenthesis) - -#+end_src diff --git a/img/MatrixBluePillRedPill.jpg b/img/MatrixBluePillRedPill.jpg deleted file mode 100644 index cb6ac02..0000000 Binary files a/img/MatrixBluePillRedPill.jpg and /dev/null differ diff --git a/img/editor-learning-curve.png b/img/editor-learning-curve.png deleted file mode 100644 index 69fb019..0000000 Binary files a/img/editor-learning-curve.png and /dev/null differ diff --git a/img/lisp_cycles.png b/img/lisp_cycles.png deleted file mode 100644 index e13ebce..0000000 Binary files a/img/lisp_cycles.png and /dev/null differ diff --git a/img/workflow_2x.png b/img/workflow_2x.png deleted file mode 100644 index 167093d..0000000 Binary files a/img/workflow_2x.png and /dev/null differ diff --git a/index.org b/index.org deleted file mode 100644 index 3e59247..0000000 --- a/index.org +++ /dev/null @@ -1,256 +0,0 @@ -#+TITLE: Emacskurs -# #+OPTIONS: toc:nil num:nil -#+OPTIONS: toc:2 num:nil H:4 tex:imagemagick -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* Introduksjon - - Dette kurset arrangeres av [[http://fui.ifi.uio.no/][Fagutvalget ved Institutt for informatikk]], og - holdes på Institutt for Informatikk i Simula, Tirsdag 17. Mars kl. 16:15. - - Denne siden er et supplement til kurset, der deler av stoffet dekkes, samt - linker til annet kursmaterialet og andre nyttige lenker. - -** Kursmateriale - - Kildekoden for alt materiale ligger på [[https://github.com/larstvei/emacskurs][GitHub]]. Her finner du: - - - [[./foiler.html][Foiler]] - - [[./emacs-init.el][Konfigurasjonsfil]] - - [[./handout.html][Handout]] - - Nettsiden er generert med et egenkomponert [[https://github.com/larstvei/org-bootstrap-document][Org-scheme]], og foilene er - generert med [[https://github.com/coldnew/org-ioslide][org-ioslide]]. - -** Nyttige lenker - - [[http://www.gnu.org/software/emacs/manual/html_node/emacs/index.html#Top][Emacs manualen]] - - [[http://termvakt.ifi.uio.no/Emacs][Termvaktens guide til Emacs]] - - [[http://www.masteringemacs.org/reading-guide/][En flott blogg om Emacs]] - - [[http://www.ic.unicamp.br/%7Ehelio/disciplinas/MC102/Emacs_Reference_Card.pdf][En cheat-sheet for Emacs]] - - [[http://www.reddit.com/r/emacs/][/r/emacs]] - - [[https://github.com/larstvei/dot-emacs][Min konfigurasjonsfil]] - -* Komme igang med Emacs - - Her står det litt om hvordan du installerer og konfigurerer Emacs. - -** Emacs på Ifi - - På Ifi er Emacs allerede installert. Du kan se hvilken versjon du har - tilgjengelig ved å skrive følgende i terminalen: - - #+BEGIN_SRC sh - [larstvei@vetur ~]$ emacs --version - GNU Emacs 23.1.1 - Copyright (C) 2009 Free Software Foundation, Inc. - GNU Emacs comes with ABSOLUTELY NO WARRANTY. You may redistribute copies of - Emacs under the terms of the GNU General Public License. For more - information about these matters, see the file named COPYING. - #+END_SRC - - I filområdet =/snacks/bin/= ligger det ekstra programvare, og der er en - nyere versjon av Emacs tilgjengelig. Se Termvaktsidene for mer informasjon - om [[http://termvakt.uio.no/Snacks][Snacks]]. - - #+BEGIN_SRC sh - [larstvei@vetur ~]$ /snacks/bin/emacs-newest --version - GNU Emacs 24.4.1 - Copyright (C) 2014 Free Software Foundation, Inc. - GNU Emacs comes with ABSOLUTELY NO WARRANTY. - You may redistribute copies of Emacs - under the terms of the GNU General Public License. - For more information about these matters, see the file named COPYING. - #+END_SRC - - For å slippe å skrive =/snacks/bin/emacs-newest= hver gang kan vi lage et - alias. Denne kommandoen legger til en linje i din =~/.bashrc=-fil: - - #+BEGIN_SRC sh - echo alias emacs='/snacks/bin/emacs-newest' >> ~/.bashrc - #+END_SRC - - Kommandoen ~alias emacs='/snacks/bin/emacs-newest'~ vil kjøres hver gang - du åpner en ny terminal. For at endringen skal ta effekt med en gang kan - du bruke ~source~: - - #+BEGIN_SRC sh - [larstvei@vetur ~]$ source ~/.bashrc - [larstvei@vetur ~]$ emacs --version - GNU Emacs 24.4.1 - Copyright (C) 2014 Free Software Foundation, Inc. - GNU Emacs comes with ABSOLUTELY NO WARRANTY. - You may redistribute copies of Emacs - under the terms of the GNU General Public License. - For more information about these matters, see the file named COPYING. - #+END_SRC - - Fra Emacs 24 og oppover kommer Emacs med en innebygget pakke-behandler - som gjør det svært enkelt å finne nyttige utvidelser for Emacs. Denne - brukes i konfigurasjonsfilen, så man må med andre ord ha Emacs 24 for at - den skal fungere. - -** Emacs på egen maskin - - Emacs er tilgjengelig på Linux, OS X og Windows. - -*** Linux - - De aller fleste pakkesystemer for Linux har Emacs 24 tilgjengelig. Her - dekkes hvordan Emacs kan installeres for Ubuntu og Fedora, som - bruker hhv. ~apt-get~ og ~yum~. - - For Ubuntu (og Debian) kan du bruke kommandoen: - - #+BEGIN_SRC sh - sudo apt-get install emacs24 - #+END_SRC - - For Fedora skriver du kun: - - #+BEGIN_SRC sh - sudo apt-get install emacs - #+END_SRC - -*** OS X - - Dersom du ikke allerede bruker [[http://brew.sh/][Homebrew]] kan du laste ned Emacs hos [[http://emacsformacosx.com/][Emacs - For OS X]]. Det er kun å flytte Emacs fra .dmg-fila til ~Applikasjoner~. - - For Homebrew kan du kjøre kommandoen: - - #+BEGIN_SRC sh - brew install --cocoa emacs - #+END_SRC - - For at den skal bli søkbar i Spotlight må du kopiere Emacs til - ~Applikasjoner~. Kommandoen ~open~ åpner filer og mapper, så ved å - kjøre: - - #+BEGIN_SRC sh - open /usr/local/Cellar/emacs/24.4/ - #+END_SRC - - kan du bare flytte Emacs til ~Applikasjoener~. - - Dersom man bruker Alfred holder det å legge til ~/usr/local/~ under - Features->Search Scope. - -*** Windows - - Du kan laste ned Emacs [[http://ftp.gnu.org/pub/gnu/emacs/windows/][her]]. Du finner filene helt på bunnen av siden, du - kan laste ned ~emacs-24.3-bin-i386.zip~, eller prøve en nyere hvis det - er tilgjengelig. - - Extract mappen på et passende stad. Emacs er stand alone og trenger altså ikke å installeres. - Emacs kjøres ved å dobbeltklikke på filen runemacs.exe som ligger i mappen "bin". - - Emacs fungerer på akkurat samme måte, men alt fungerer bedre i Linux eller på Mac. - -** Konfigurere Emacs - - Her gang Emacs starter ser den etter en konfigurasjonsfil, den velger - /den første/ den finner av disse tre filene: - - - =~/.emacs= - - =~/.emacs.el= - - =~/.emacs.d/init.el= - - Den siste ligger altså i en mappe som heter =~/.emacs.d/=, det kan være - fordelaktig dersom du ønsker å spre konfigurasjonen din over flere - ~.el~-filer, eller dersom du ønsker å ha færre filer liggende i - hjemmeområdet. - - Konfigurasjonsfilen blir tolket som et vanlig Emacs Lisp program, så alt - innholdet må være Emacs Lisp kode. - - For å begynne kan du åpne Emacs og skrive =C-x C-f RET ~/.emacs=, og - skrive inn litt Emacs Lisp, f. eks: - - #+BEGIN_SRC emacs-lisp - (blink-cursor-mode 0) - #+END_SRC - - Dersom du lagrer (med =C-x C-s=) og åpner Emacs på nytt vil du se at - markøren ikke blinker lenger. Siden Emacs kan endres /under kjøring/ kan - du kun evaluere uttrykket, dette kan du gjøre ved å skrive =M-x - eval-buffer=, som evaluerer hele bufferet. Du kan også evaluere et enkelt - uttrykk ved å plassere markøren ved slutten av uttrykket og trykke =C-x - C-e=. Merk at endringer du gjør som ikke largres noe sted vil mistes når - du lukker Emacs. - - Hvordan man konfigurerer gås nøyere gjennom under kurset, og vi tar - utgangspunkt i en enkel [[./emacs-init.el][konfigurasjonsfil]]. - -* Litt om bruk av verktøy - - Som informatikkstudenter jobber vi mye med å løse problemer. Når vi jobber - med programmering blir vi ofte møtt med mange små hindringer som - distraherer oss fra problemet vi prøver å løse. Ved å velge gode verktøy - kan du unngå mange av disse hindringene og heller fokuser på å jobbe med - selve problemet. - - Verktøyene vi bruker er gjerne programmer som [[http://termvakt.uio.no/Fjerninnlogging][SSH]], [[http://git-scm.com/][Git]], [[https://gcc.gnu.org/][GCC]], [[http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html][JDK]], [[https://eclipse.org/][Eclipse]], - [[http://www.latex-project.org/][LaTeX]] eller [[https://www.mozilla.org/en-US/firefox/developer/][Firefox]] og selvfølgelig et hav andre. De programmene vi velger - utgjør arbeidsflyten vår. - - Noe av det vi gjør mest som programmerere er å jobbe med tekst. Det finnes - mange programmer som gjør denne jobben utmerket, f. eks. [[http://www.vim.org/][Vim]], [[http://www.sublimetext.com/3][Sublime]] - eller [[https://atom.io/][Atom]]. Vi skal lære om teksteditoren [[http://www.gnu.org/software/emacs/][Emacs]]. Det aller beste med Emacs - er at det kan /endres mens det kjører/. Dette er en utrolig kraftig - egenskap. - - Om du ser for deg at du kommer til å programmere i mange år fremover er - min anbefaling at du lærer deg en håndfull programmer /godt/, og at en av - disse programmene bør være en teksteditor. Dersom du ønsker et fleksibelt - verktøy som dekker de fleste aspektene av programmering bør du se hva - Emacs har å tilby. - -** Emacs - - Emacs er et program som gir brukeren et interface for å redigere tekst. I - bunn er det en språktolker som kan tolke Emacs Lisp kode, som er et - fullverdig programmeringsspråk, med et stort bibliotek av funksjoner som - lar deg operere på tekst. Hver gang Emacs mottar et tastetrykk fyres det - av en funksjon. Disse funksjonene er som regel skrevet i Emacs Lisp - (resten er skrevet i C), og du kan åpne kildekoden og utforske hva den - gjør. - - Siden Emacs Lisp er et tolket språk kan vi evaluere kode mens Emacs - kjører, og se effekten umiddelbart. Vi kan definere nye funksjoner, eller - redefinere eksisterende, og endre Emacs til å gjøre oppgavene vi - ønsker. Det unike med Emacs er at de endringene du gjør er en like «sann» - del av Emacs som alt av innebygd funksjonalitet, som gjør den langt mer - utvidbar enn de fleste andre programmer. - - Som en effekt kan man bruke Emacs til utrolig mye forskjellig. Det finnes - støtte for de aller fleste programmeringsspråk, samt markup-språk som - HTML, LaTeX, Markdown og Org. Emacs kan også kommunisere med eksterne - prosesser, som lar deg f. eks. kjøre en terminal i Emacs, sende kode fra - et Emacs-buffer til en ekstern språktolker (f. eks. Python), som så - evalueres, kompilere LaTeX-dokumenter fra Emacs eller tilby et interface - til [[https://github.com/magit/magit][Git]]. - - Dersom man velger å bruke Emacs kan man også velge vekk veldig mange - andre programmer. Fordelen med dette er at det blir en slakere - læringskurve når du skal benytte deg av et nytt programmeringsspråk - e. l. siden du allerede er kjent med verktøyet. Ulempen er at - læringskurven til Emacs kan være noe bratt. - - [[file:editor-learning-curve.png]] - -* Lisens - -#+BEGIN_HTML - Creative Commons-lisens
-#+END_HTML - - Dette verk er lisensieret under en [[http://creativecommons.org/licenses/by-sa/4.0/][Creative Commons - Navngivelse-DelPåSammeVilkår 4.0 Internasjonal lisens]].