#+TITLE: Emacs pour le développement
#+AUTHOR: Ludovic Courtès
#+EMAIL: ludovic.courtes@inria.fr
#+DATE: 16 octobre 2014
#+STARTUP: content hidestars
#+LINK: org info:org#%s

Salut à toi !  Bienvenue dans la bidouille !

Utilise « C-c C-o » (control+c puis control+o) pour suivre les liens
(les trucs soulignés en bleu ci-dessous).

Ce fichier est disponible à http://sed.bordeaux.inria.fr/la-bidouille ou
http://people.bordeaux.inria.fr/lcourtes/org.org.

#+COLUMNS: %38ITEM %TODO %TAGS
* pré-requis

  - GNU Emacs 24.x (ou 23.x au pire)
  - manuel de Org

* édition structurée

** [[info:org#Headlines][sections]], [[info:org#Plain%20lists][listes]], etc.

  - M-RET
  - M-up, M-down
  - M-right, M-left
  - C-c -

** [[info:org#Motion][mouvement]], [[info:org#Visibility%20cycling][pliage]], etc.

  - C-n, C-p
  - TAB (plier/déplier)
  - S-TAB (ditto, global)
  - C-w (déplacer un truc dans une autre section)

** [[info:org#Hyperlinks][hyperliens]]

  - C-c l (org-store-link)

#+BEGIN_SRC emacs-lisp
  (define-key global-map "\C-cl" 'org-store-link)

#+END_SRC

  - C-c C-l (org-insert-link)

** [[info:org#Tables][tables, tableaux]]

  | équipe       | effectifs |
  |--------------+-----------|
  | SED          |         4 |
  | Runtime      |         4 |
  | HiePACS      |         3 |
  | CELIA (CNRS) |         2 |
  | LaBRI (CNRS) |         2 |
  | LFANT        |         1 |
  | Magique3D    |         1 |
  | I2M (CNRS)   |         1 |
  | Mnemosyne    |         1 |
  | Carmen       |         1 |
  | GEOSTAT      |         1 |
  | *total*      |        21 |
  #+TBLFM: @13$2=vsum(@2..@12)


** =#+BEGIN= truc

*** raccourci

=<s TAB=

*** source

  - C-c '

#+BEGIN_SRC scheme
  (define (foo x)
    (+ x (* x x)))
#+END_SRC

*** [[info:org#Evaluating%20code%20blocks][exécution de code]] (Babel)

Utiliser « C-c C-c » sur le bloc de code ci-dessous pour l'évaluer.

#+BEGIN_SRC emacs-lisp
  (defun factorial (n)
    (if (zerop n)
        1
      (* n (factorial (- n 1)))))

  (list (factorial 12) (version))
#+END_SRC

#+RESULTS:
| 479001600 | GNU Emacs 24.4.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.7)\n of 2015-03-04 on localhost |

#+BEGIN_SRC emacs-lisp
  (require 'ob-scheme)
  (require 'ob-python)
#+END_SRC

#+RESULTS:
: ob-python

#+BEGIN_SRC scheme
  (define (factorial n)
    (if (zero? n)
        1
        (* n (factorial (- n 1)))))

  (list (factorial 12) (version))
#+END_SRC

#+RESULTS:
| 479001600 | 2.0.11.97-8cf2a-dirty |

#+BEGIN_SRC python
  import sys

  def factorial(n):
      if n == 0:
          return 1
      else:
          return n * factorial(n - 1)

  return [ factorial(12), sys.version ]
#+END_SRC

#+RESULTS:
| 479001600 | 2.7.6 (default, Mar  4 2015, 05:14:03) \n[GCC 4.8.4] |

#+RESULTS

*** [[info:org#Org-Plot][graphiques]]

* documents

** [[org:Exporting][sortie]] LaTeX, HTML, Texinfo, OpenDocument (!), etc.

** [[info:org#Markup][syntaxe en plus]]

*** =#+BEGIN_quote=

Voici une citation qui pète.

    #+BEGIN_QUOTE
    Everything should be made as simple as possible,
    but not any simpler.  -- Albert Einstein
    #+END_QUOTE

*** =#+BEGIN_center=

#+BEGIN_CENTER
This is centered text.
#+END_CENTER

*** [[info:org#Footnote%20markup][notes de pied de page]]

Cette phrase se termine par une note de pied de page[1].

*** [[info:org#Emphasis%20and%20monospace][emphase, gras, etc.]]

  - *bold*
  - /italic/
  - _underlined_
  - =verbatim=
  - ~sqrt(foo[2])~
  - +strike-through+

* liste de choses à faire

** [[info:org#TODO%20Items][les TODO]]

  - C-c C-t (changer l'état de TODO à DONE, etc.)
  - C-c a t (lister toutes les choses)

*** TODO foo

*** TODO bar

*** TODO baz [0%]

    - [ ] premier truc
    - [ ] deuxième truc
    - [ ] troisième truc

** [[info:org#Column%20view][la vue colonne]]

  - C-c C-x C-c

** [[info:org#Tags][les étiquettes]] (/tags/)

  - C-c C-c (ajouter/changer l'étiquette)
  - C-c a m (lister les choses avec une étiquette donnée)
  - C-a a M (listes les choses à faire avec une étiquette donnée)

* agenda

** [[info:org#Deadlines%20and%20scheduling][les propriétés pour l'ordonnancement]] : =SCHEDULED=, =DEADLINE=, etc.

  - schedule : C-c C-s
  - deadline : C-c C-d

** [[info:org#Agenda%20Views][la vue agenda]]

  - C-c C-a
    + v m (vue mensuelle)
    + v d (vue du jour)

** [[info:org#Clocking%20work%20time][horodatage]][2]

  - clock in : C-c C-x C-i
  - clock out : C-c C-x C-o
  - C-a
    + R (rapport)
    + l (liste)

* références

  - [[info:org][manuel de Org]]
  - [[http://orgmode.org/][site ouaibe de Org]]
  - [[http://orgmode.org/worg/][Worg]], documentation écrite par les utilisateurs (style wiki)
  - [[http://www.jstatsoft.org/v46/i03][« A Multi-Language Computing Environment for Literate Programming
    and Reproducible Research »]] (Schulte et al.)
  - [[https://tel.archives-ouvertes.fr/UNIV-PMF_GRENOBLE/hal-01083205v1][« Effective Reproducible Research with Org-Mode and Git »]] (Stanisic
    et al.)

* Footnotes

[1] Rien à ajouter.

[2] Ce mot n'est pas dans l'dico.  « Pointage » ?
