Org-Mode: Comment créer un raccourci clavier «org mode markup»?

11

Je sais que je peux utiliser *bold*, /italic/, _underline_, =verbatim=, ~code~et +strike-through+d' appliquer le balisage au texte dans org-mode. Mais comment créer des raccourcis clavier pour appliquer ces modifications à une région de texte? Par exemple, si je veux mettre du texte en gras, y a-t-il un moyen plus simple que

  1. naviguer vers l'avant du texte
  2. le préfixer avec un *
  3. naviguer à la fin du texte
  4. en ajoutant un *?

Je n'arrive pas à trouver de commande qui "grasse" un bout de texte, comme org-make-region-bold. Existe-t-il une telle commande?

modulitos
la source

Réponses:

12
  1. Marquez votre région
  2. Cliquez C-c C-x C-f *pour gras , C-c C-x C-f /pour italique, etc.

org-highlight est une fonction Lisp interactive compilée dans `org.el '.

(accent sur l'organisation et CHAR facultatif)

Insérez ou modifiez un accent, c'est-à-dire une police comme gras ou italique. S'il y a une région active, changez cette région pour un nouvel accent. S'il n'y a pas de région, insérez simplement les caractères marqueurs et placez le curseur entre eux. CHAR doit être le caractère marqueur. S'il s'agit d'un espace, cela signifie supprimer l'accentuation de la région sélectionnée. Si CHAR n'est pas donné (par exemple dans un appel interactif), il sera demandé.

rasmus
la source
8

Vous pouvez utiliser 1 pour faciliter l'insertion de caractères de balisage dans . Ajoutez le code suivant à votre fichier init:electric-pair-modeorg-mode

(electric-pair-mode 1)

(defvar org-electric-pairs '((?\* . ?\*) (?/ . ?/) (?= . ?=)
                             (?\_ . ?\_) (?~ . ?~) (?+ . ?+)) "Electric pairs for org-mode.")

(defun org-add-electric-pairs ()
  (setq-local electric-pair-pairs (append electric-pair-pairs org-electric-pairs))
  (setq-local electric-pair-text-pairs electric-pair-pairs))

(add-hook 'org-mode-hook 'org-add-electric-pairs)

Avec cela en place, tout ce que vous devez faire pour envelopper une région avec des caractères de balisage est appuyez sur le caractère correspondant ( *, /, =, _, ~, ou +) une fois.

Comme avantage supplémentaire, Emacs insérera automatiquement des paires correspondantes de caractères de balisage au point s'il n'y a pas de région. Par exemple, appuyez sur *pour insérer **et laisser un point entre les deux caractères afin que vous puissiez continuer à taper sans avoir à déplacer le point.


1 Ce mode est intégré; il n'est pas nécessaire d'installer de packages tiers pour l'utiliser.

itsjeyd
la source
1
Je vous remercie! Honnêtement, c'est la réponse la plus claire et la plus simple. La douce surprise est que electric-pair-modela paire s'applique également à une région sélectionnée. J'ai toujours pensé que les paires électriques étaient destinées à l'insertion de paires uniquement.
ephsmith
2
Le problème avec cette approche est que *et /sont couramment utilisés dans les documents typiques du mode Org, par exemple, *commence un en-tête. De même, si vous tapez une barre oblique dans un texte long, par exemple, il y a une barre oblique supplémentaire que vous devez supprimer à chaque fois.
PlagueHammer
5

Vous pouvez utiliser le wrap-regionpackage (également disponible sur Melpa) pour envelopper une région avec n'importe quel personnage de votre choix. Bien sûr, cela peut être configuré par mode principal.

(require 'wrap-region)

(add-hook 'org-mode-hook #'wrap-region-mode)

(wrap-region-add-wrapper "=" "=" nil 'org-mode) ; select region, hit = then region -> =region= in org-mode
(wrap-region-add-wrapper "*" "*" nil 'org-mode) ; select region, hit * then region -> *region* in org-mode
(wrap-region-add-wrapper "/" "/" nil 'org-mode) ; select region, hit / then region -> /region/ in org-mode
(wrap-region-add-wrapper "_" "_" nil 'org-mode) ; select region, hit _ then region -> _region_ in org-mode
(wrap-region-add-wrapper "+" "+" nil 'org-mode) ; select region, hit + then region -> +region+ in org-mode

Le expand-regionpackage complète très bien ce package (également disponible dans Melpa).

Usage

  • Vous sélectionnez le mot ou la phrase à l'aide du raccourci clavier que vous avez choisi er/expand-region.
  • Appuyez *sur pour mettre cette région en gras (en org-mode).
Kaushal Modi
la source
0

Les utilisateurs d'Evil peuvent utiliser le mode mineur evil-surround pour gérer différents types de balisage. Vous pouvez ajouter du balisage à la sélection visuelle avec S(par défaut) ou aux objets texte en mode normal avec ys.

Vous pouvez également modifier ou supprimer certains marqueurs. Mais, pour modifier ou supprimer des marqueurs qui ne sont pas connus par evil-surround par défaut, vous devrez les ajouter à Evil en tant qu'objets texte .

aaa
la source