[kinou Org-mode]

kinouchou

Présentation

Il y a quelques mois j'ai découvert org-mode, un mode d'emacs servant à organiser les tâches. J'ai souvent plein d'idées en tête mais pas forcément au moment de pouvoir les faire. Et avec la trésorerie d'ubuntu-fr je ne peux pas me permettre d'oublier de suivre les factures et paiements.

J'ai donc commencé à utiliser org-mode et par ricochet emacs. Plus le temps passe et plus je découvre org-mode et plus je suis accro, j'en reviens même à me dire que les modes d'emacs ne sont là que pour complêter org-mode…

Il y a deux mois environ j'ai eu pas mal de temps pour me plonger dans emacs et org-mode. Des fois j'avais du mal à comprendre les tutos et manuels. Leurs explications ne sont pas toujours simples et le fait qu'ils sont souvent en anglais m'aidait pas forcément. J'ai donc commencé à prendre des notes sur mes trouvailles et à enregistrer les liens sur le sujet. Ainsi a débuté un petit mode d'emploi perso. Aujourd'hui je pense à publier tout celà (et mes futures découvertes) sur mon blog. Par contre vu tout ce qu'on peut faire avec org-mode je ne publierai que ce billet sur la page principale et les autres seront publiés séparément.

Pour débuter nous allons juste installer emacs. =sudo apt-get install emacs= (j'ai oublié mais j'utilise ubuntu et je donnerai les méthodes d'installation pour ubuntu). En lançant emacs vous aurez un écran avec un certain nombre de renseignements. Il y a notament le lien pour le tutoriel pour emacs. Il est en français (si vous avez ubuntu en français) et simple à suivre.

Amusez-vous bien!

A faire Découverte d'org-mode

Mes fichiers

  • Un fichier "TODO_bilan" contenant plusieurs sous-parties:
    • boutique (par mois)
    • événements (par trimestre)
    • envois aux assos et administrations (par trimestre)
    • dons (par trimestre)
    • achats (par goodies)
    • remboursement des bénévoles
  • Un fichier bilan par compte bancaire
  • Un fichier relevé par compte bancaire
  • Un fichier pour les notes rapides

Le fichier "TODO_bilan" contient plusieurs sous-parties avec un rythme dépendant de l'activité. ** les fonctions utilisées

  • TODO (ici ce sont les "A faire" et "Fait")
  • Tags (encaissement, clos …)
  • checkboxes (les petites boites à cocher [ ] ou [X])
  • tables (non illustrées ici, ce sont des tableaux simples)
  • babel (un mode qui permet d'ajouter du code et de l'interpréter au milieu du fichier .org)
  • Org-Capture (extension permettant l'enregistrement rapide d'une tache)
  • abbrev (permet de créer ses abbréviations qu'emacs transformera en l'ensemble de caractères que l'on aura prédéfini)
  • macro (je les utilises -pour le moment- uniquement pour ajouter du texte automatiquement)
  • chrono (permet de mesurer le temps passé pour faire une tache, les CLOCK sur l'image)
  • liens (liens classiques comme les "Postale02" sur l'image)
  • LaTeX (comment éditer sans?)

** mise en œuvre

  • Écrire une nouvelle entrée (TODO) pour chaque envoi aux assos, chaque événement ou chaque bénévole.
  • Pour chaque évolution de dossier lancer le chrono, cocher la case correspondante, lien vers le fichier. Modification du tag.
  • Pour chaque entrée il y a un numéro dans un des fichiers bilan du type "Compte"## avec un lien entre le fichier TODO et le fichier bilan.
  • Pour chaque paiement, donner le même numéro à une entrée du type Re"Compte"## avec un lien entre le relevé et le TODO.
  • À la fin de l'année utiliser babel et python pour avoir le total par compte et mettre le résultat dans LaTeX pour l'édition.

Ce bref aperçu des focntions que l'on peut utiliser dans org-mode fera l'objet de plusieurs articles. Tout ne sera pas fait dans l'ordre, mais des liens de cet article permettront de s'y retrouver.

mettre la nouvelle version org-mode

Décompresser le tar.gz danns un dossier. Se déplacer dans un terminal dans ce dossier et faire "make" (installer make si besoin). Puis faire make install en root. On peut sa version savoir en faisant M-x org-version

Org-Capture

Le principe est de pouvoir rajouter à la volée des notes ou taches quelque soit l'endroit où l'on se trouve, rapidement pour ne pas perdre le fil de ce qu'on faisait avant. Ainsi on ne perd pas l'idée qu'on vient d'avoir, ou on peut prendre en note les infos du coup de téléphone qu'on vient de recevoir et revenir à la tache initiale rapidement.

À mettre dans le fichier .emacs code récupéré http://doc.norang.ca/org-mode.html#sec-4_2 pour prendre des notes rapides

(setq org-default-notes-file "~/emacs/notes_taches_rapides.org")
;;
;;J'utilise =C-c r= pour démarer org-capture 
(define-key global-map "\C-cr"'org-capture)
;;
;;Template pour les "A faire", "notes" et "blog"
(setq org-capture-templates (quote (("t" "todo" entry (file
"~/emacs/notes_taches_rapides.org") "* A faire %?
  %U
  %a" :clock-in t :clock-resume t)
                                  ("n" "note" entry (file
                                  "~/emacs/notes_taches_rapides.org")
                                  "* %? :NOTE:
  %U
  %a
=:CLOCK:=
=:END:" :clock-in t :clock-resume t)=
                                  ("b" "blog" entry (file
                                  "~/emacs/blog")
                                  "* %? 
  %U
  %a
=:CLOCK:
:END:" :clock-in t :clock-resume t))))=
On commence par dire où seront enregistrées les notes. Je définie la combinaison de touches lançant org-capture.
(setq org-capture-templates (quote (("n" "note" entry (file
                                  "~/emacs/notes_taches_rapides.org")
                                  "* %? :NOTE:
  %U
 %a
=:CLOCK:=
=:END:" :clock-in t :clock-resume t))))=
On défini les particularités des entrées d'org-capture. =n= est la touche qui permet de choisir les notes par exemples. On dit dans quel fichier seront enregistrées les notes. =*= est là pour qu'à chaque entrée la ligne commence avec un astérisque et donc un niveau 1.
:NOTE: est optionnel, ça permet juste d'ajouter un tag pour chacune des entrées "notes".
:CLOCK:... sert à arrêter le chrono de la tâche qu'on faisait avant de lancer org-capture. Lorsqu'on enregistrera l'entrée avec =C-c C-c= le chrono de la tache rapide s'arrêtera et celui de la tache précédente reprendra.

Un lien envoyant sur la tache coupée est ajouté automatiquement en fin de la tache rapide. Lorsqu'on lance une tache rapide, nous écrivons la tache dans un fichier temporaire appelé CAPTURE-nom_du_fichier_spécifié_dans_.emacs. Lorsque la tache rapide est enregistrée, on est renvoyé automatiquement dans la tache qui a été suspendue et la tache rapide pourra être retrouvée dans le fichier nomé dans .emacs.

Org-checklist

Ce module permet (au minimum) de remettre à zéro une liste de boites à cocher lorsque la tâche dont elle dépend passe à DONE. C'est assez pratique pour une tâche répétitive. Pour celà il faut ajouter le fichier org-checklist.el dans le dossier de modules et dans le .emacs:

(load "chemin_accès/org-checklist")
(require 'org-checklist)
Dans la tâche il faut ajouter :
  :PROPERTIES:
  :RESET_CHECK_BOXES: t
  =:END:=

Ajouter une note à une Tâche

Dans le fichier org-mode C-c C-z et dans l'agenda z permet d'ouvrir un buffer pour écrire une note qu'on validera avec C-c C-c.

En voici un exemple:

- Note taken on [2011-01-11 mar. 02:58] \\
voilà une note faite avec C-c C-z
Le but? Les notes ne s'ouvrent pas lorsqu'on utilise Tab sauf si on est sur la ligne de la note (un peu comme les drawers). Du coup ça permet de commenter sans être submergé.

Ajouter des exemples non évalués dans son fichier .org

Il peut être utile d'ajouter dans son fichier .org un exemple avec tag, dates … L'utilisation dans une présentation ou un blog ne doit pas interférer avec le reste de nos tâches.

EX: vous faites une super présentation, avec des exemples bidons et puis vous oubliez cette présentation. Quelles que semaines plutard vous vous retrouvez sur votre agenda avec des entrées farfelues sans raison, votre clock-report comporte des entrées inutiles. Comme à chaque problème il y a ((au moins) une solution en voilà une.

Dans le .emacs ajouter: #+begin_src elisp (setq org-agenda-skip-function '(org-agenda-skip-entry-if 'todo '("Commentaire"))) (setq org-todo-keywords (quote ((sequence "Commentaire")))) #+end_src Biensur c'est si on veut que les exemples des présentations soient sous un titre avec pour mot clé "Commentaire".

Puis dans le fichier .org il suffit d'écrire: #+begin_src org ** Commentaire Présentation #+begin_src org Le texte de la présentation avec des titres ** premier titre texte ** deuxième titre SCHEDULED: <2011-04-21 jeu. 18:00> CLOCK: [2011-04-19 mar. 19:33]--[2011-04-19 mar. 21:33] => 2:00 des dates et temps passés à faire une tâche #+end_src #+end_src et comme ça on aura un bel exemple sans que les dates interfèrent dans le reste de nos activités.