Org-Mode: Jak utworzyć skrót klawiszowy „org mode markup”?


11

Wiem, że mogę używać *bold*, /italic/, _underline_, =verbatim=, ~code~, i +strike-through+do zastosowania znaczników do tekstu w org-mode. Ale jak utworzyć powiązania klawiszy w celu zastosowania tych zmian do regionu tekstu? Na przykład, jeśli chcę pogrubić tekst, czy istnieje łatwiejszy sposób niż

  1. nawigacja do przodu tekstu
  2. poprzedzając go znakiem *
  3. nawigacja do końca tekstu
  4. dołączając *?

Nie mogę znaleźć żadnego polecenia, które „pogrubi” fragment tekstu, na przykład org-make-region-bold. Czy istnieje takie polecenie?

Odpowiedzi:


12
  1. Oznacz swój region
  2. Kliknij C-c C-x C-f *na śmiały , C-c C-x C-f /dla kursywa itd.

org-emphasize to interaktywna skompilowana funkcja Lisp w `org.el '.

(podkreślenie organizacji i opcjonalnie CHAR)

Wstaw lub zmień wyróżnienie, tj. Czcionkę pogrubioną lub kursywą. Jeśli istnieje aktywny region, zmień ten region na nowy nacisk. Jeśli nie ma regionu, po prostu wstaw znaki znacznika i ustaw kursor między nimi. CHAR powinien być znakiem znacznika. Jeśli jest to spacja, oznacza to usunięcie nacisku z wybranego regionu. Jeśli CHAR nie zostanie podany (na przykład podczas rozmowy interaktywnej), zostanie wyświetlony monit.


8

Możesz użyć 1, aby ułatwić wstawianie znaczników . Dodaj następujący kod do pliku 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)

Mając to na miejscu, wszystko co trzeba zrobić, aby owinąć region z postaciami dopłata ma nacisnąć odpowiedni znak ( *, /, =, _, ~, lub +) jeden raz.

Jako dodatkową korzyść Emacs automatycznie wstawi pasujące pary znaków znaczników w punkcie, jeśli nie ma regionu. Na przykład naciśnięcie *spowoduje wstawienie **i pozostawienie punktu między dwoma znakami, dzięki czemu można kontynuować pisanie bez konieczności przesuwania punktu.


1 Ten tryb jest wbudowany; nie ma potrzeby instalowania pakietów innych firm, aby z niego korzystać.


1
Dziękuję Ci! Szczerze mówiąc, jest to najczystsza i najprostsza odpowiedź. Słodką niespodzianką jest to, że electric-pair-modestosuje tę parę do wybranego regionu. Zawsze uważałem, że pary elektryczne są przeznaczone tylko do wstawiania par.
ephsmith

2
Problem z tego podejścia jest to, że *i /są powszechnie stosowane w typowych Org dokumentów trybu np *rozpoczyna nagłówek. Podobnie, jeśli piszesz ukośnik długim tekstem, np. Istnieje dodatkowy ukośnik, który musisz usunąć za każdym razem.
PlagueHammer,

5

Możesz użyć tego wrap-regionpakietu (dostępnego również w Melpa), aby owinąć region dowolną wybraną postacią. Można to oczywiście skonfigurować dla każdego trybu głównego.

(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

expand-regionPakiet uzupełnia ten pakiet bardzo dobrze (dostępny również w Melpa).

Stosowanie

  • Wybierasz słowo lub frazę za pomocą przypisanego klawisza er/expand-region.
  • Naciśnij, *aby podkreślić ten region jako pogrubiony (w org-mode).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.