elsbl | lesél | lseilép |
---|---|---|
dlitsléb | 10 | 20 |
eietl | letil | lielt |
- code source au format org
- le pdf généré à partir de l’export en LaTeX
- l’export en LaTeX pour les très curieux ;-)
- Une copie d’écran et une deuxième montrant le rendu du fichier org.org en cours d’édition dans Emacs.
Org est un mode pour Emacs qui permet entre autre de prendre des notes, de maintenir des TODOs ainsi que de planifier efficacement des projets complexes. Plus d’information dans la documentation officielle
Org fait parti d’Emacs depuis la version 22, je ne détaillerais donc pas son installation. La configuration de base préconisée par la documentation officielle suit:
(require 'org-install)
(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
(define-key global-map "\C-cl" 'org-store-link)
(define-key global-map "\C-ca" 'org-agenda)
(setq org-log-done t)
Org est implémenté au-dessus du mode Outline Mode qui permet
d’éditer des lignes longues. Cela permet aux documents d’être
organisé dans une structure hiérarchique donnant ainsi une meilleure
représentation des notes et des idées.
Org simplifie notablement l’usage du mode outline en rassemblant
toutes les fonctionnalités de masquage/affichage en une seule
commande org-cycle
, qui est accessible via le raccourci <TAB>.
Les sections d’un document sont hiérarchisées à l’aide d’étoiles. Par exemple:
* Section 1 ** Sous-section 1 *** Sous-sous-section 1 Du texte… *** Sous-sous-section 2 Du texte…
:
** Sous-section 2 *** Sous-sous-section 1 Du texte… *** Sous-sous-section 2 Du texte…
:
* Section 2 etc…
Si l’on préfère une vue de ce type…
* Top level headline * Second level * 3rd level some text * 3rd level more text * Another top level headline
:
…on peut, à partir de Emacs 23.1.50.3 et Org 6.29, utiliser le
mode org-indent-mode
ou mettre dans le fichier où l’on désire ce
comportement la ligne de configuration #+STARTUP: indent
. Plus
d’information sur ce type de vue se trouve à la section
A cleaner outline view de la documentation officielle.
Il est possible de cacher certaines parties du texte dans le buffer
afin d’en dégager la structure. Les deux principaux raccourcis pour
cela sont <TAB>
(rotation sur le nœud courant) et <S-TAB>
(rotation
sur l’ensemble du buffer).
Pour voir l’ensemble du buffer, on peut utiliser C-u C-u C-u <TAB>
Enfin, lors de la première visite d’un buffer il est possible de
paramétré le type de contenu que l’on veut voir par défaut:
#+STARTUP: overview #+STARTUP: content #+STARTUP: showall #+STARTUP: showeverything
Plus d’information sur ces fonctionnalités à la section Visibility cycling de la documentation officielle.
Les commandes suivantes permettent de naviguer rapidement dans le buffer.
- C-c C-n
- Section suivante ;
- C-c C-p
- Section précédente ;
- C-c C-f
- Section suivante de même niveau ;
- C-c C-b
- Section précédente de même niveau ;
- C-c C-u
- Retourne au niveau le plus haut.
- C-c C-j
-
Place le document dans un buffer temporaire où l’on
peut naviguer rapidement à l’aide de touches prédéfinies rappelées
ci-dessous. Cette fonctionnalité est très appréciable pour de
gros documents.
<TAB> Cycle visibility. <down> / <up> Next/previous visible headline. <RET> Select this location. / Do a Sparse-tree search. The following keys work if you turn off org-goto-auto-isearch. n / p Next/previous visible headline. f / b Next/previous headline same level. u One level up. 0-9 Digit argument. q Quit.
Voici la description sommaire des principaux raccourcis d’édition. Pour une description complète et exhaustive on peut toujours se référer à la section Structure editing de la documentation officielle.
- M-<RET>
- Insère une nouvelle rubrique (section, description etc) de même niveau que le niveau actuel.
- C-<RET>
- Comme M-<RET>, sauf que la rubrique est ajoutée au niveau inférieur.
- M-S-<RET>
- Insère un nouveau TODO au même niveau que le niveau actuel.
- C-S-<RET>
- Comme M-S-<RET> mais au niveau inférieur.
- <TAB>
- (dans un nouvelle entrée vide) Dans une nouvelle entrée, sans encore de texte, le premier <TAB> fait devenir l’entrée un enfant de la précédente. Le <TAB> suivant la fait devenir… je n’ai pas compris (voir la doc ou essayer).
- M-<left>
- Descend tout le niveau courant d’un niveau.
- M-<right>
- Augmente tout le niveau courant d’un niveau.
- M-S-<left>
- Descend seulement l’entrée courante d’un niveau.
- M-S-<right>
- Augmente seulement l’entrée courante d’un niveau.
- M-S-<up>
- Déplace l’entrée courante au-dessus de l’entrée de même niveau.
- M-S-<down>
- Idem vers le bas.
- C-c C-x C-w
- Supprime l’entrée courante et la place dans le kill ring.
- C-c C-x M-w
- Copie l’entrée courante dans le kill ring.
- C-c C-x C-y
- Colle une entrée depuis le kill ring.
- C-c C-x c
- Clone une entrée.
- C-c C-w
- Déplace l’entrée courante ou la région à un autre endroit. Voir Refiling notes.
- C-c ^
- Trie les entrées de même niveau.
Org est capable de construire un arbre partiel à partir d’une information donnée de tel manière que la totalité du document soit replié à l’exception des parties contenant l’information cherchée. Essayez le et vous comprendrez ; les commandes pour construire un arbre partiel sont accessibles par C-c /, en particulier C-c / r permet de construire un aperçu des correspondances à une expression rationnelle donnée.
Pour un usage répété d’une recherche, il est possible de définir une touche d’accès rapide accessible via le répartiteur d’agenda (vois Agenda Dispatcher pour plus d’information).
(setq org-agenda-custom-commands
'(("f" occur-tree "FIXME")))
définie le « rat Courci » C-c a f pour créer un aperçu de l’arborescence qui trouve une correspondance avec FIXME.
Les différentes commandes possibles seront expliquées ultérieurement, lorsque seront expliqué les notions de tags et de properties.
Enfin, pour imprimer un arbre partiel tel qu’il apparaît, on peut
utiliser la commande ps-print-buffer-with-faces
car elle n’imprime
pas les parties invisibles. On peut aussi utiliser C-c C-e v pour
exporter seulement la partie visible puis imprimer le résultat.
Pour plus d’information sur cette section, se reporter à la partie Sparse trees de la documentation officielle.
Il est possible de formater des listes à la main. En effet Org reconnaît les listes non ordonnées, les listes numérotées et les descriptions.
- Les listes à puces sont marquées avec les symbole ‘-’ ou ‘+’, éventuellement * (malgré que ce soit déconseillé) ;
- les listes numérotées commences par un numéro suivit d’un point « 1. 2. etc » ou d’une parenthèse « 1) 2) etc ».
- les descriptions sont identiques au listes non ordonnées mais
la description est suivi du séparateur ::
Voici un exemple de listes:
** Lord of the Rings My favorite scenes are (in this order) 1. The attack of the Rohirrim 2. Eowyn's fight with the witch king + this was already my favorite scene in the book + I really like Miranda Otto. 3. Peter Jackson being shot by Legolas - on DVD only He makes a really funny face when it happens. But in the end, no individual scenes matter but the film as a whole. Important actors in this film are: - Elijah Wood :: He plays Frodo - Sean Austin :: He plays Sam, Frodo's friend. I still remember him very well from his role as Mikey Walsh in The Goonies.
Il existe beaucoup de raccourcis claviers très utiles pour manipuler les listes mais le plus important d’entre eux est sûrement M-<RET> qui permet de passer à la ligne en ajoutant une nouvelle entrée à la liste.
Pour plus d’information sur les listes et les raccourcis associés, se reporter à la section Plain lists de la documentation officielle.
Drawers #marqueurs
TODO http://orgmode.org/manual/Drawers.html#Drawers
**Link format
Les propriétés sont des paires clé-valeur. Elles doivent être insérées entre des marqueurs spéciaux (voir Marqueurs) dont le nom est PROPERTIES. Chaque propriété est spécifiée sur une seule ligne, avec la clé (entouré par deux-points) suivie de sa valeur. Voici un exemple :
* CD collection ** Classic *** Goldberg Variations :PROPERTIES: :Title: Goldberg Variations :Composer: J.S. Bach :Artist: Glen Gould :Publisher: Deutsche Grammophon :NDisks: 1 :END:
Il est possible de définir les valeurs autorisées pour une propriété donnée, disons ‘:xyz:’, en définissant une propriété ‘:xyz_ALL:’. Cette propriété particulière est héritée sur la suite de l’arborescence. Lorsque les valeurs autorisées sont définies, il devient plus facile d’insérer les propriétés et cela évite les erreurs de frappe. Pour l’exemple, pour une collection de CD, on peut prédéfinir les éditeurs et le nombre de disques dans une boîte comme ceci:
* CD collection :PROPERTIES: :NDisks_ALL: 1 2 3 4 :Publisher_ALL: "Deutsche Grammophon" Philips EMI :END:
Si l’on souhaite définir des propriétés héritées sur l’ensemble du fichier, utilisez une ligne comme
#+PROPERTY: NDisks_ALL 1 2 3 4
Les valeurs de propriétés définies dans le variable global ‘org-global-properties’ sont héritées dans tous les fichiers Org.
Les raccourcis claviers suivant facilite le travail avec les propriétés:
- M-<TAB>
- Après un « : » en début de ligne, complète avec toutes les clefs de propriétés accessible dans le fichier courant.
- C-c C-x p
- Sollicite la saisie du nom d’une propriétés et de sa valeur.
- C-c C-c
- Quand le curseur est sur un marqueur de propriétés, cela exécute des commandes de la propriété.
- C-c C-c s
- Définit une propriété dans l’entrée actuelle. Propriété et valeur peuvent être insérés à l’aide du complètement de code.
- S-<left>/<right>
- Place la propriété du point courant à la valeur possible précédente/suivante.
- C-c C-c d
- Supprime une propriété de l’entrée courante.
- C-c C-c D
- Supprime une propriété dans toutes les entrées du ficher courant.
- C-c C-c c
- Compute the property at point, using the operator and scope from the nearest column format definition. (si quelqu’un comprend…)
Des propriétés spéciales fournissent une méthode alternative d’accès aux caractéristiques du mode Org, comme l’état « TODO » ou la priorité d’une entrée, examinées dans les chapitres précédents. Cette interface existe pour pouvoir inclure ces états dans une vue en colonne (voir Vue en colonne), ou de les utiliser dans des requêtes. Les noms des propriétés suivantes sont particulières et ne devraient pas être utilisés comme clés dans un marqueur de propriété :
TODO The TODO keyword of the entry. TAGS The tags defined directly in the headline. ALLTAGS All tags, including inherited ones. CATEGORY The category of an entry. PRIORITY The priority of the entry, a string with a single letter. DEADLINE The deadline time string, without the angular brackets. SCHEDULED The scheduling timestamp, without the angular brackets. CLOSED When was this entry closed? TIMESTAMP The first keyword-less timestamp in the entry. TIMESTAMP_IA The first inactive timestamp in the entry. CLOCKSUM The sum of CLOCK intervals in the subtree. org-clock-sum must be run first to compute the values. ITEM The content of the entry.
Par exemple la structure suivante:
** My project :PROPERTIES: :COLUMNS: %20ITEM %9Approved(Approved?){X} %Owner %11Status %10Time_Spent{:} :Owner_ALL: Tammy Mark Karl Lisa Don :Status_ALL: "In progress" "Not started yet" "Finished" "" :Approved_ALL: "[ ]" "[X]" :END:
:
*** Item 1 :PROPERTIES: :Owner: Tammy :Time_spent: 1:45 :Status: Finished :END:
:
*** Item 2 :PROPERTIES: :Owner: Tammy :Status: In progress :Time_spent: 0:15 :END:
:
*** Item 3 :PROPERTIES: :Owner: Lisa :Status: Not started yet :Approved: [X] :END:
Donnera ceci dans une vue en colonne:
En mode replié:
Pour plus d’information, voir ce tutoriel.