Org-mode 1/5 : gérer ses notes avec GNU Emacs

Posté par  (site web personnel) . Édité par Davy Defaud, Nÿco et Benoît Sibaud. Modéré par claudex. Licence CC By‑SA.
40
11
avr.
2017
Doc

Org-mode est un mode de l’éditeur de texte GNU Emacs utilisé pour la prise de notes, la gestion de tâches, la publication de documents, de blogs, les bibliographies, etc., et même la synchronisation avec un smartphone ! Oui, oui, oui, les possibilités d’utilisation d’org-mode sont nombreuses et diverses. Tout ça en texte brut.

Peut‐on tout faire ? N’essayez pas, sous peine d’échec ! Carsten Dominik, le créateur conscient d’avoir lancé un monstre tentaculaire, résume parfaitement la situation :

« N’essayez pas de configurer l’ultime système de gestion de tâches dès le début. Car vous n’avez aucune idée de ce que ce système devrait être. Ne configurez pas pleins d’états et d’enregistrements dès le début, avant que vous n’ayez vraiment le sentiment que cela correspond à vos besoins. Ne définissez pas un tag « @ordinateur » seulement parce que David Allen en a un, même si vous êtes assis devant un ordinateur toute la journée ! Commencez par créer et gérer une petite liste de tâches et développez ensuite votre propre système au fur et à mesure que le besoin s’en fait sentir. J’ai créé Org-mode pour permettre ce processus de développement. »

Parti d’un constat similaire, Ben Maughan de Pragmatic Emacs a rédigé cinq tutoriels d’introduction à Org-mode sur la prise de notes et leur publication. La suite présente son premier article (traduit en français avec l’accord de l’auteur).

NdM : j’ai profondément revu la traduction initiale de ptitjano pour conserver le style rapide, concis et rythmé de l’auteur.

I. Structurer vos notes

J’ai longtemps repoussé l’écriture d’articles sur org-mode ne sachant pas vraiment par où commencer. Qu’est-ce qu’org-mode ? D’après le site Web :

« Org-mode permet de prendre des notes, de maintenir des listes TODO, de planifier des projets et de publier des documents, le tout en texte brut. »

Org-mode a poussé beaucoup de gens vers Emacs. J’y suis venu dix ans après mes débuts sur Emacs, mais il m’a permis d’évoluer d’un éditeur de texte vers un Emacs à tout faire, m’apportant d’énormes gains de productivité.

Org-mode est très polyvalent et je m’en sers entre autres choses pour :

  • prendre des notes ;
  • écrire des polys et des diapos de cours en PDF ;
  • écrire mes notes de recherche, le code d’analyse, les résultats et les publications finales, tout dans un seul document, afin de pouvoir reproduire la recherche ;
  • gérer ma liste de trucs à faire et mes échéances ;
  • écrire ce blogue ;
  • créer des pages Web ;
  • rédiger des courriels.

Le clou du spectacle, c‘est qu’on fait tout ça en texte brut, les docs org-mode sont lisibles par tous les éditeurs de texte !

Il y a beaucoup de tutoriels org-mode un peu partout, tels que :

Je ne veux pas réinventer la roue ici, mais je pense que l’avalanche de trucs faits par org-mode peut écraser les débutants. Dans l’esprit donc de ce blog, j’écrirai une série d’articles pour mettre en avant quelques trucs dont je me sers le plus souvent.

Je vais commencer avec l’utilisation d’org-mode pour organiser des notes. C’est ce qui m’a scotché sur org-mode, et tout le reste en a découlé.

Org-mode est livré avec Emacs, mais vous devriez installer la version la plus récente.

Pour commencer au plus facile, créez un nouveau fichier dans Emacs avec l’extension .org. Ci‐dessous, voici un exemple de document org, et je vous conseille de le taper dans votre fichier org-mode, pour sentir la façon dont ça marche.

* La structure de org-mode
Le texte d’un org est structuré par les titres des parties, dont les 
lignes débutent par une ou plusieurs * et nous voilà donc dans une partie !

** Un sous‐titre
commence par une * supplémentaire et ainsi de suite

** Navigation
Les titres de partie peuvent être pliés ou dépliés en allant jusqu’au 
(sous‐)titre et en appuyant sur TAB. S-TAB les fait tous défiler. Vous 
pouvez sauter au suivant ou au précédent avec C-c C-n et C-c C-p 
respectivement.

Vous pouvez déplacer les titres de haut en bas avec les flèches, pour les 
réorganiser, en utilisant M-haut et M-bas. Vous pouvez changer le niveau du 
titre avec M-gauche et M-droite (utilisez M-S-gauche et M-S-droite pour 
changer aussi les niveaux des sous‐titres)
** Listes
*** Listes à puces
 - les listes à puces sont créées comme ça (commencez une ligne par des espaces et un -
 - tapez M-Entrée pour une nouvelle puce
 - nous pourrions vouloir des listes imbriquées
   - comme celle‐ci (j’ai tapé M-Entrée Tab pour l’indenter)
   - et cette autre (maintenant M-Entrée indente au nouveau niveau)
 - c’est chouette qu’Emacs coupe les longues lignes de texte pour les 
   aligner sur les puces
 - vous pouvez réordonner la liste et changer l’indentation avec M-haut 
   et M-bas comme pour les titres de parties
 - on change le style des puces avec S-gauche et S-droite
*** listes numérotées
 1) les listes numérotées sont également possibles
 2) M-Entrée donne le numéro suivant

*** cases à cocher [/]
 - [ ] on peut même faire des cases à cocher
 - [ ] M-S-Entrée ouvre la ligne suivante avec une case à cocher
 - [ ] C-c C-c coche ou décoche la case
 - [ ] vous pouvez avoir des sous‐listes
   + [ ] comme ça
   + [ ] que l’on peut cocher séparément
 - [ ] et vous pouvez suivre le nombre de coches en ajoutant [/] au bout de 
   la ligne précédant la liste — c’est mis à jour quand vous cochez une case vide
*** listes de définition
 - les listes de définition :: parfois pratiques
 - deuxième élément :: là encore, M-Entrée a créé l’élément et les longues lignes sont coupées proprement sous la définition

Je vous suggère de configurer un peu org-mode maintenant. Ajoutez ceci à votre fichier de configuration d’Emacs :

;; fixe l’indentation maximale d’une liste de définition
(setq org-list-description-max-indent 5)

;; lors de la rétrogradation d’une section, empêche le décalage du texte à l’intérieur
(setq org-adapt-indentation nil)

C’est tout pour l’instant. Essayez de prendre des notes avec org-mode, vous allez bien aimer la structure qu’il vous met sur le texte.

Ben Maughan, Org-mode basics: structuring your notes, le 25 août 2015.

Aller plus loin

  • # Markdown ?

    Posté par  . Évalué à 2.

    Bonjour,

    Je ne vois pas très bien ce qui rend cette fonctionnalité si incroyable. org-mode ressemble à une énième version du markdown, avec une bonne intégration dans emacs.

    Il permet de générer des pdfs et des slides à partir de simili-mardown, ce qui peut être fait avec Pandoc. Il permet de prendre des notes en fichier texte, ce qui peut être fait en markdown avec n'importe quel bon éditeur (ou avec Zim, que je conseille aussi). Il permet de gérer des tâches, ce qui peut être fait en markdown, avec Zim, avec gtg, et j'en passe.

    Après, j'imagine que c'est une question de goût. Je préfère avoir des applications séparées pour gérer des tâches séparées. J'imagine que d'autres préfèrent tout centraliser dans un même format texte, au risque de s’emmêler les raccourcis clavier et les conventions propres à chaque usage du même format dans des contextes différents.

    • [^] # Re: Markdown ?

      Posté par  . Évalué à 4. Dernière modification le 11 avril 2017 à 23:13.

      D'accord avec toi… L'avantage d'Org-mode est de garder l'ensemble des fonctionnalités au "même endroit"… et c'est ce que j'aime.
      Cela ne m'empêche pas d'exporter en markdown quand j'ai besoin.
      N'étant pas programmeur (ni même d'une profession touchant de près ou de loin à l'informatique), je suis passé à Org-mode progressivement en articulant mes usages.
      Il me semble que c'est pour cela qu'il est adopté par des écrivains ou des chercheurs en sciences humaines :
      - David Bosman
      - Jay Dixit

      La polyvalence et la complémentarité des fonctionnalités font la force d'Org-mode. Je ne séparerai plus.
      Et puis Org-mode est né en 2003. Markdown en 2004 --» preuve que cela répondait à un besoin la vie en mode texte.

      • [^] # Re: Markdown ?

        Posté par  . Évalué à 1.

        C'est chouette de voir que des outils fortement liés à l'informatique se propagent vers d'autres cercles. Visiblement, le fait d'avoir boosté l'intégration et les fonctionnalités a permis d'en propager l'usage.

        Belle réussite en tout cas.

    • [^] # Re: Markdown ?

      Posté par  (site web personnel) . Évalué à 6.

      Je ne vois pas très bien ce qui rend cette fonctionnalité si incroyable. org-mode ressemble à une énième version du markdown, avec une bonne intégration dans emacs.

      Il y a bien plus de fonctionnalités, comme par exemple une navigation futée, le pliage-dépliage. le déplacement d'arborescences, l'utilisation des tags (genre TODO, DONE, URGENT, etc.) et aussi des dates. Il serait plus judicieux à mon avis de comparer org-mode à un gestionnaire de tickets sommaire mais qui peut intéresser les utilisateurs de Emacs pour leurs projets perso. Je n'ai jamais utilisé org-mode sérieusement, mais il y a certainement plein d'autres trucs trop bien qu'il sait faire.

      • [^] # Re: Markdown ?

        Posté par  (site web personnel) . Évalué à 2.

        Il y a bien plus de fonctionnalités, comme par exemple une navigation futée, le pliage-dépliage. le déplacement d'arborescences, l'utilisation des tags (genre TODO, DONE, URGENT, etc.) et aussi des dates.

        Bin justement, ce que tu décris ressemble un peu à une "bonne intégration dans emacs". Et je me demande si org-mode aurait pu techniquement (et s'il avait été créé plus récemment) être bâti sur du markdown.

        • [^] # Re: Markdown ?

          Posté par  . Évalué à 6.

          je pense pas, parcequ'il définit plus de choses que le markdown, et certainement d'une manière nécessairement différente pour parser le tout. Ç'aurait pas du tout été du markdown classique et valide du coup.

          Mes exemples de fonctionnalités:

          • tableaux: sont très faciles à créer et à étendre dans orgmode. (On utilise des | et la touche TAB.)
          • tableurs: un tableau, des chiffres, une petite formule et on a un tableur !
          • tags et propriétés sur des titres de sections, ce qui permet de trier l'affichage, exporter un article de blog avec les bonnes catégories,
          • agenda, tâches avec dates planifiées, export et tri associés,
          • inclusion et génération de code (literate programming),
          • et bien sûr export en html, latex, odt, txt,…
    • [^] # Re: Markdown ?

      Posté par  . Évalué à 6.

      Ce n'est pas qu'une question de goût, org-mode est bien plus vaste que le périmètre que tu décris.

      Peut-être la syntaxe d'org-mode aurait-elle pu être celle de markdown, ou bien l'inverse, mais ceci n'est pas significatif par rapport à tout ce qu'org-mode peut faire.

      Tu le compares à Zim, c'est pertinent, mais tu pourrais aussi le comparer à un tableur, un système complet de production de documentation, un gestionnaire d'agenda, un outil de gestion de projet, un environnement de literate programming (désolé pour les anglicismophobes, mais «programmation lettrée» ne passe pas), plus tous les outils que je ne connais pas encore, plus tout ce que tu peux imaginer comme combinaison de ces outils.

    • [^] # Re: Markdown ?

      Posté par  . Évalué à 6.

      Je ne vois pas très bien ce qui rend cette fonctionnalité si incroyable. org-mode ressemble à une énième version du markdown, avec une bonne intégration dans emacs.

      D'une part org-mode est antérieur à markdown si je ne me trompe pas. Ensuite la dépêche se concentre volontairement sur le format de fichier, mais org-mode est un plugin. Ce qui le rend intéressant c'est la dynamique, le fait qu'emacs puisse vraiment en faire des choses intelligentes. Au final, org-mode permet d'avoir une interface textuelle (donc asse libre) qui se manipule intelligemment ensuite (par exemple créer une todo list puis la trier selon différents critères (cacher les déjà fait, ordonner sur la date attendu, faire une recherche dedans,…).

      C'est inintéressant car tu as accès à la puissance d'emacs pour manipuler le texte, puis aux commandes org-mode pour traiter ce texte de manière plus sophistiquée.

      Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

      • [^] # Re: Markdown ?

        Posté par  (site web personnel) . Évalué à 3.

        emacs mériterait une amélioration franche de la Gui. Genre un clic droit qui propose toutes les fonctionnalités disponibles au focus, ou le genre de menu à la office qui s'ouvre à coté d'une sélection.

        Bref, une interface qui te prennent un peu plus par la main, que de compter sur une liste énorme de commande. Les toolsbar ne sont pas forcément génials ou productives, mais c'est très didactique.

        Bon, je dois dire que l'interface "tableur" m'a l'air particulière réussi.

        "La première sécurité est la liberté"

        • [^] # Re: Markdown ?

          Posté par  . Évalué à 2.

          Il y a les menus ! Parfaitements pour ça non ? Selon le contexte il y aura un menu pour le language de programmation, pour org-mode, pour le gestionnaire de fichiers Dired, les menus d'édition, de fichiers, de buffer, d'outils (-> gestion de projet, compilation, recherche de fichiers (grep ou autre), controle de version, mail, navigateur web, calendrier, chiffrement, calculette, jeux, debuggeur, ediff, patches,…), le menu d'aide,… plutôt pas mal non ?

          et après des paquets comme which-key, qui montrent et expliquent les raccourcis présents à tel moment. Cf http://wikemacs.org/wiki/Discoverability

    • [^] # Re: Markdown ?

      Posté par  (site web personnel) . Évalué à 2.

      Comme ça a déjà été dit, il ne faut pas confondre le format org (qui peut ressembler de loin à du markdown) et org-mode qui est un mode emacs avec toutes les fonctionnalités que cela apporte en général.

      Même si on se focalise sur le format, il faut voir que org est facilement extensible avec la notion de propriétés (au sein des drawers) et avec celle de blocs. On peut grosso modo mettre des méta données sur les sections (les propriétés) et définir ses propres blocs. En ce sens, la syntaxe org est beaucoup plus riche que celle de markdown car extensible et avec méta données (deux choses qui ne sont pas possibles en markdown, en tout cas pas simplement). On a aussi une notion de macro très simple à utiliser, et bien d'autres extensions comme des liens typés, etc.

      Au niveau du mode lui même, on dispose, comme souvent en emacs, de nombreux points d'entrées qui permettent de gérer les extensions dont je viens de parler, et ce très facilement. Je suis une brêle totale en elisp et j'ai pourtant étendu très facilement org avec des blocs à moi que j'exporte ensuite en HTML toujours à ma sauce. C'est d'une souplesse et d'une puissance très emacsienne.

      Bref, aucun rapport à part en surface, en gros.

  • # emacs ?

    Posté par  . Évalué à 3.

    Est-ce que c'est possible de l'utiliser sans emacs ?
    voire sous thunderbird/lightning ?
    voire sur son téléphone ?

    • [^] # Re: emacs ?

      Posté par  (site web personnel) . Évalué à -3.

      Non, c'est complètement lié à emacs et je ne pense pas qu'il y ait un plan prévu pour l'en faire sortir.

    • [^] # Re: emacs ?

      Posté par  (site web personnel) . Évalué à 7.

      Oui :

      • sur Android tu peux installer Orgzly
      • il existe pour Vim
      • et Pandoc le gère

      "La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay

      • [^] # Re: emacs ?

        Posté par  (site web personnel, Mastodon) . Évalué à 5.

        Je m'étais intéressé à Org-mode et étant utilisateur de Vim (même si j'ai utilisé Emacs par le passé), j'ai regardé de ce côté.

        Le plugin vim-orgmode qui semble être le plus complet et maintenu s'installe de manière inhabituelle (un script à exécuter), du coup je m'inquiète des mise à jours, et il y a une palanquée d'autres plugins recommandés pour l'utilisation, ce qui me gène aussi (autant de plugins à maintenir et qui peuvent être gênants d'une manière ou d'une autre). J'ai déjà un vim personnalisé (comme beaucoup de monde), et j'aimerais ne pas avoir trop de choses qui viennent polluer ma config.

        Du coup je me demande si des gens ici l'ont essayé et si ça vaut le coup d'insister. Et aussi est-ce que des gens connaissant bien la version Emacs ont un retour sur la version Vim (très en dessous, comparable, meilleur ?).

        J'entends parler de org-mode depuis tellement longtemps que je me dis que ça doit valoir le coup d'essayer.

    • [^] # Re: emacs ?

      Posté par  . Évalué à 2. Dernière modification le 12 avril 2017 à 14:48.

      edit: oups c'est déja répondu

      il y un essai pour vim: https://github.com/jceb/vim-orgmode

      mais dans ce cas-là autant utiliser evil-mode :) (voire Spacemacs)

  • # Vidéos

    Posté par  . Évalué à 6.

    ça peut valoir le coup de le voir à l'œuvre:

  • # top !

    Posté par  (site web personnel) . Évalué à 4.

    Franchement j'imaginais bien ce genre de chose pour gérer des todo list mais plus dans un éditeur web pour avoir la main dessus n'importe ou (et avec la gestion de version qui va avec).

    J'adore emacs, mais le nombre de commande "c-c xxc" à connaitre par coeur est "insane". C'est un défi au bonne pratique de GUI. Et je ne parle pas de ces modes de visualisation qui ressemble à des buffers mais pas vraiment.

    Franchement org-mode est une tuerie, mais je pense que la courbe d'apprentissage est très violente (plate en faite, voir abyssal par rapport à la productivité)

    "La première sécurité est la liberté"

    • [^] # Re: top !

      Posté par  . Évalué à 4.

      Franchement j'imaginais bien ce genre de chose pour gérer des todo list mais plus dans un éditeur web pour avoir la main dessus n'importe ou

      N'importe où ? Ou n'importe où où il y a du réseau ?

      J'adore emacs, mais le nombre de commande "c-c xxc" à connaitre par coeur est "insane"

      Bref, tu n'adores pas emacs.

      • [^] # Re: top !

        Posté par  (site web personnel) . Évalué à 3.

        N'importe où ? Ou n'importe où où il y a du réseau ?

        Il existe des modes déconnectés dans la plus part des webapp. Et cela évite de devoir monter un git dans un coin pour faire ses sauvegardes.

        Bref, tu n'adores pas emacs.

        Il me manque toujours un truc sur n'importe quel autre éditeur de texte (ctl-k, c-x-e, c-x-r-t, M-/ ,…)

        "La première sécurité est la liberté"

        • [^] # Re: top !

          Posté par  . Évalué à 6.

          Il me manque toujours un truc sur n'importe quel autre éditeur de texte (ctl-k, c-x-e, c-x-r-t, M-/ ,…)

          +1 :) puis surtout les greps interactifs (helm-swoop, helm-ag, la gestion de git avec magit, un shell où tout est du texte, l'émulation vim evil-mode, le gestionnaire de fichiers Dired, la connection à travers ssh avec tramp,…)

          le nombre de commande "c-c xxc" à connaitre par coeur est "insane".

          oui et non. Voyons voir. On n'est pas obligé d'apprendre un raccourci, on peut appeler sa commande avec Alt-x. D'où l'extension smex, qui propose ces commandes avec filtre interactif à la volée (comme une Command Palette) et les dernières commandes présentées en premier. Emacs a pas mal de moyens pour trouver de la doc. Il y a les menus. Il y a C-h k + raccourci pour voir quelle commande est associée à ce raccourci, et C-h ? pour voir les sections d'aide et chercher par mot-clef. Quand on appelle une commande par son nom, Emacs nous informe si elle a un raccourci associé. Il y a plusieurs modes qui aident à découvrir les raccourcis présents à tel moment: cf http://wikemacs.org/wiki/Discoverability dont notamment which-key. Puis certains modes proposent une super interface où une action est associée à une touche, ce qui permet de se rappeler uniquement du nom du mode. Cf magit (gestion git) et le paquet Hydra.

        • [^] # Re: top !

          Posté par  . Évalué à 2.

          Il existe des modes déconnectés dans la plus part des webapp

          La plupart. Oui oui oui. Disons au mieux qu'elles sont l'exception. Et puis faut garder le navigateur ouvert, pas rebooter le portable, tout ça.

  • # Naviguer dans les notes

    Posté par  (site web personnel) . Évalué à 1.

    Sous OSX, j'ai assez longtemps hésité entre nvalt et org-mode pour la prise de notes. J'ai finalement choisi nvalt pour son système d'enregistrement automatique ainsi que de recherche et de navigation dynamique dans les notes. Basé sur markdown, il est très limité mais correspond globalement à mes besoins. A l'époque, j'avais essayé de coupler org mode et deft mode pour chercher à obtenir la facilité d'utilisation de nvalt et la puissance de org mode, mais le résultat n'était pas probant au regard de la simplicité du premier.

    Cette news et les limitations de nvalt (et aussi le fait qu'il ne tourne que sous OSX) m'incitent à m' intéresser à nouveau à org mode. Il y a peut-être d'autres solutions que d'utiliser deft mode.

    Bref, comment faites vous pour retrouver vos notes via emacs ?

    Il y a-t-il une possibilité d'enregistrement automatique ?

  • # Bravo pour ce texte, on attend la suite !

    Posté par  . Évalué à 2.

    Je suis utilisateur depuis de nombreuses années d'org-mode, et je n'en ai pas encore fait le tour…
    Sa communauté est extrêmement dynamique et tous les mois des nouveautés sympas apparaissent.

    Un des aspects d'org-mode que j'aime beaucoup et qui n'a pas encore été présenté : c'est le mode babel. on peut ajouter des blocs de code (shell, lisp, ruby, python, R, ditaa, plantUML….) dans son texte et les rendre exécutables, appelez ces blocs de code entre eux en leur passant des attributs (et donc mélanger différents bouts de code écrits dans différents langages).

    J'utilise beaucoup cet aspect pour de la programmation littéraire et commenter, par exemple, mes process d'installation.

    En tant qu'enseignant, c'est plutôt pratique, et je peux générer très facilement du beamer (avec la génération de dessin décrit de manière textuel, voir plantUML ou ditaa par exemple).

    Pour des exemples de babel, voici un lien sur le tutoriel de babel.

    Pour les rétifs à Emacs et ses raccourcis de commandes complexes, et qui préfèrent une approche à la vim, je vous conseille spaceEmacs, installation et configuration simplifié et vous retrouvez les raccourcis vim.

  • # La suite !!!

    Posté par  . Évalué à 2.

    Super cet article et sa traduction !!! Merci !!!

    J'ai moi aussi tout de suite accroché aux principes du org-mode, mais est très vite été débordé… Au départ, je voulais un truc pour faire du GTD, mais avec les "view" agenda, les tags, etc. j'ai vite été pardu même si très impressionné.
    Du coup j'ai commencé à m'en servir juste comme éditeur de texte "coloré et indenté" :) (d'ailleurs je conseille à tous les débutants de mettre "#+STARTUP: showall indent" en tête de leur fichier, ça indente automatiquement les niveaux de section et les déplie par défaut).

    Du coup je suis un peu resté sur ma faim et j'aurais bien lu la suite (bin oui dans le titre y'a 1/5)… Ça serait cool de mettre des liens entre les différents morceaux du "tutoriel", qu'on puisse facilement naviguer de l'un à l'autre…
    https://linuxfr.org/news/org-mode-2-5-inserer-des-tableaux-dans-vos-notes

    • [^] # Re: La suite !!!

      Posté par  (site web personnel) . Évalué à 4. Dernière modification le 14 avril 2017 à 11:38.

      Je ne peux pas mettre le lien tant que je n'ai pas publié… le tag orgmode permet de retrouver tous les articles. Les impatients peuvent lire en anglais… http://pragmaticemacs.com/org-mode-tutorials/

      Merci pour ton appréciation.
      NB : je me suis amusé à restituer qq rimes et sonorités propres au phrasé de Ben Maugham!

      "La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.