Emacs/org-mode
+Table of Contents
+-
+
- Installing emacs, org-mode, ess, and auctex. + + +
- Emacs Tips and tricks
+
-
+
- Cheat-sheets + + +
- Video tutorials +
- Additional useful emacs packages
+
-
+
- Company-mode +
- Magit +
+ - Other resources +
+ - A replicable article + + +
Installing emacs, org-mode, ess, and auctex.
+OS-specific installation procedure
+Linux (Debian, Ubuntu)
++We provide here only instructions for debian-based distributions. Feel +free to contribute to this document to provide up-to-date information +for other distributions (e.g.n redhat, fedora). +
+ ++Today, the stable versions of the most common distributions provide +recent enough versions of emacs and org-mode: +
+-
+
- Debian (stretch) ships with emacs 25.1 and org-mode 9.0.3 +
- Ubuntu (bionic 18.04) ships with emacs 25.2 and org-mode 9.1.6 +
- Ubuntu (artful 17.04) ships with emacs 25.2 and org-mode 9.0.9 +
+If your distribution is older than this, well, it may be a good time +for upgrading… +
+ ++Simply run (as root): +
+apt-get update ; apt-get install emacs25 org-mode ess r-base auctex ++
+Then make sure you have a sufficiently recent version of emacs. +
+emacs --version 2>&1 | head -n 1 ++
+GNU Emacs 25.2.2 + ++ +
+Likewise, you'll want to check you have a recent version of org-mode: +
+emacs -batch --funcall "org-version" 2>&1 | grep version
+
++Org mode version 9.1.11 (9.1.11-dist @ /usr/share/emacs/25.2/site-lisp/elpa/org-9.1.11/) + ++ +
+The version numbers you get will depend on the distribution you are +running. You really want to make sure you do not rely on org-mode 8, +which is now deprecated. +
+Mac OS X
+-
+
+Option 1: Install the
+.dmg
file from Vincent Goulet: +https://vigou3.github.io/emacs-modified-macos/. It ships with recent +versions: +-
+
- Emacs 26.1 +
- Org-mode 9.1.13 +
- ESS 17.11 +
+In that case you may have several versions of emacs installed on +your machine and launching emacs from a terminal may not run the one +you just installed. If anyone know how to get rid of this… +
++Option 2: If you already use
+brew
, simply do the following ++brew update +brew install emacs [--with-cocoa] +brew linkapps emacs +brew tap homebrew/science +brew install ess +brew install auctex # The name may be slightly more complicated here +brew install wget +
+
+
Windows
+
+Install the .exe
file from Vincent Goulet:
+https://vigou3.github.io/emacs-modified-windows/. It ships with recent
+versions:
+
-
+
- Emacs 26.1 +
- Org-mode 9.1.13 +
- ESS 17.11 +
A simple "reproducible research" emacs configuration
++Emacs comes with very basic default configuration and it appears like +everyone has its own taste. You will for example find here several +default Emacs configurations that reflect the preferences of their +creators. Likewise the configuration of Org-Mode is incredibly +flexible (see for example the org-mode website for more +references). In the context of this MOOC, we propose you a relatively +minimalistic one that is rather "reproducible research" oriented by +adding a few org-mode specific configurations. +
+Step 0: Backup and download our configuration
+
+The procedure we propose will wipe your already existing custom emacs
+configuration if you already have one. You should thus beforehand make
+a backup of ~/.emacs
and of ~/.emacs.d/init.el
(if these file
+exists).
+
+Then download this archive and uncompress it. It contains the +following files and we will refer to them in the following: +
+ ++rr_org/init.el +rr_org/journal.org + ++
Step 1: Prepare your journal
+
+Create an org/
directory in the top of your home:
+
mkdir -p ~/org/ ++
+Then copy rr_org/journal.org
file in your ~/org/
directory. This
+file will be your laboratory notebook and all the notes you will
+capture with C-c c
will go automatically go in this file. The first
+entry of this notebook is populated with many emacs shortcuts that you
+should give a try.
+
Step 2: Set up Emacs configuration
+
+Copy rr_org/init.el
in your ~/.emacs.d/
directory.
+
+Alternatively, if you do not want to mess with your already existing
+emacs configuration, you may launch emacs with this specific
+configuration with the following command: emacs -q -l rr_org/init.el
.
+
Step 3: Check whether the installation is working or not
+
+Open a new instance of Emacs and open a foo.org
file. Copy the
+following lines in this file:
+
+#+begin_src shell :session foo :results output :exports both +ls -la +#+end_src + ++ +
+Put your cursor inside this code block and execute it with the
+following command: C-c C-c
(If you are not familiar with Emacs
+commands, this one means 'Ctrl + C
' twice)
+
+A #+RESULTS:
block with the result of the command should appear if it
+worked.
+
+In the video, we already have demonstrated the main features and +shortcuts of emacs/org-mode that will help you maintain a document and +benefit from literate programming. The list of features and shortcuts +is demonstrated in the first entry of your labbook. +
+Step 4: Open and play with your journal:
+
+In step 1, you were told to create an journal in
+~org/journal.org
. First you probably want to make sure this file is
+backed up in a revision control system like git. We leave it up to set
+this up but if you have any trouble, feel free to ask on the FUN
+forums.
+
Emacs Tips and tricks
+Cheat-sheets
++Learning emacs and org-mode can be difficult as there is an inordinate +amount of shortcuts. Many people have thus come up with +cheat-sheats. Here is a selection in case it helps: +
+Emacs
+-
+
- Common and step-by-step emacs shortcuts for our reproducible research configuration +
- The official GNU emacs refcard +
- Two graphical cheat-sheats by Sacha Hua on how to learn emacs and on +how to learn emacs shortcuts. +
Video tutorials
++For those of you who prefer video explanations, here is a Youtube +channel with many step by step emacs tutorials. +
+Additional useful emacs packages
+Company-mode
++Company-mode is a text completion framework for Emacs. It allows to +have smart completion in emacs for the most common languages. If you +feel this is needed, you should follow the instructions from the +official webpage: http://company-mode.github.io/ +
+Magit
++Magit is an emacs interface for Git. It is very powerfull and we use +it on a daily basis but you should definitely understand what git does +behind the scene beforehand. If you feel this would be useful for you, +you should follow the instructions from here: +https://www.emacswiki.org/emacs/Magit +
+Other resources
+ +A replicable article
+A stub of replicable article
+
+Remember, you need a working LaTeX and R environment. If you can't
+open a terminal and run the commands R
and pdflatex
, you will not be
+able to generate this document. The article downloads the
+corresponding LaTeX packages so you also need to have a working wget
+command (alternatively, you can use curl
). You may still read the
+source (article.org) and understand how it works though.
+
+Download the archive, untar it and simply make to generate the +article. You should then be able to open the resulting article. This +is summarized in the following command: +
+wget --no-check-certificate -O replicable.tgz https://github.com/alegrand/RR_webinars/raw/master/1_replicable_article_laboratory_notebook/replicable/replicable.tgz ### Fix the broken URL +tar zxf replicable.tgz; cd replicable; make ; evince article.pdf ++
+If the make
command fails (especially on Mac), it may be because emacs
+or something else is not correctly installed. In that case, open the
+article directly with the following command:
+
emacs -q --eval "(setq enable-local-eval t)" --eval "(setq enable-local-variables t)" article.org ++
+and export it to pdf with the following shortcut: C-c C-e l o
+
+If it still doesn't work and emacs complains about not finding ESS, it
+may be because you installed ESS in your home instead of
+system-wide. In that case, try to remove the -q
in the previous
+command line to load your personal emacs configuration.
+
+Finally, when you'll be tired of always reexecuting all the source +code when exporting, just look for the following line in article.org: +
++# #+PROPERTY: header-args :eval never-export ++
+If you remove the #
in the beginning of the line, it will not be a
+comment anymore and will indicate org-mode to stop evaluating every
+chunk of code when exporting.
+