Org-Mode: come creare un keybinding "mark mode org"?


11

So che posso usare *bold*, /italic/, _underline_, =verbatim=, ~code~, e +strike-through+per applicare markup per il testo in org-mode. Ma come posso creare associazioni di tasti per applicare queste modifiche a un'area di testo? Ad esempio, se voglio mettere in grassetto del testo, esiste un modo più semplice di

  1. navigando verso la parte anteriore del testo
  2. con il prefisso a *
  3. navigando fino alla fine del testo
  4. aggiungendo un *?

Non riesco a trovare alcun comando che "grassetti" un tratto di testo, ad esempio org-make-region-bold. Esiste un tale comando?

Risposte:


12
  1. Segna la tua regione
  2. Clicca C-c C-x C-f *per grassetto , C-c C-x C-f /per il corsivo etc.

org-highlightize è una funzione Lisp compilata interattiva in `org.el '.

(enfasi dell'organizzazione e CHAR opzionale)

Inserisci o modifica un'enfasi, ovvero un carattere come grassetto o corsivo. Se esiste una regione attiva, cambia quella regione in una nuova enfasi. Se non è presente alcuna regione, basta inserire i caratteri marker e posizionare il cursore tra di essi. CHAR dovrebbe essere il personaggio marcatore. Se è uno spazio, significa rimuovere l'enfasi della regione selezionata. Se non viene specificato CHAR (ad esempio in una chiamata interattiva) verrà richiesto.


8

È possibile utilizzare 1 per facilitare l'inserimento di caratteri di markup in . Aggiungi il seguente codice al tuo file 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)

Con questo in luogo, tutto quello che dovete fare per avvolgere una regione con personaggi mark-up è premere il carattere corrispondente ( *, /, =, _, ~, o +) una volta.

Come ulteriore vantaggio, Emacs inserirà automaticamente coppie corrispondenti di caratteri di markup nel punto in cui non è presente alcuna regione. Ad esempio, premendo *si inserirà **e lascerà il punto tra i due caratteri in modo da poter continuare a digitare senza dover spostare il punto.


1 Questa modalità è integrata; non è necessario installare alcun pacchetto di terze parti per usarlo.


1
Grazie! Onestamente, questa è la risposta più pulita e semplice. La dolce sorpresa è che electric-pair-modesi applica anche alla coppia in una regione selezionata. Ho sempre pensato che le coppie elettriche fossero solo per l'inserimento di coppie.
ephsmith,

2
Il problema con questo approccio è che *e /sono comunemente usati nei documenti tipici della modalità Org, ad esempio *inizia un'intestazione. Allo stesso modo se stai digitando una barra nel testo longform, ad esempio c'è una barra aggiuntiva che devi eliminare ogni volta.
PlagueHammer,

5

Puoi usare il wrap-regionpacchetto (disponibile anche su Melpa) per avvolgere una regione con qualsiasi personaggio di tua scelta. Questo ovviamente può essere configurato per la modalità principale.

(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

Il expand-regionpacchetto integra molto bene questo pacchetto (disponibile anche in Melpa).

uso

  • Puoi selezionare la parola o la frase usando l'associazione chiave per la quale hai scelto er/expand-region.
  • Premi *per enfatizzare quella regione in grassetto (in org-mode).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.