Kuruluş Modu: “Kuruluş modu işaretlemesi” tuş bağlama nasıl oluşturulur?


11

Ben kullanabilir biliyorum *bold*, /italic/, _underline_, =verbatim=, ~code~, ve +strike-through+hiç metne biçimlendirme uygulamak içinde org-mode. Ancak, bu değişiklikleri bir metin bölgesine uygulamak için anahtar bağlantıları nasıl oluştururum? Örneğin, bazı metinleri kalın yapmak istersem,

  1. metnin önüne gitmek
  2. bir önek ile *
  3. metnin sonuna gitmek
  4. ekleme *?

Gibi bir metin streç "kalın" herhangi bir komut bulamıyorum gibi org-make-region-bold. Böyle bir komut var mı?

Yanıtlar:


12
  1. Bölgenizi işaretleyin
  2. Click C-c C-x C-f *için kalın , C-c C-x C-f /için italik vb

org-vurgu, org.el dosyasında etkileşimli derlenmiş Lisp işlevidir.

(org-vurgulama ve isteğe bağlı CHAR)

Vurgu veya kalın, italik gibi bir font ekleyin veya değiştirin. Etkin bir bölge varsa, o bölgeyi yeni bir vurgu ile değiştirin. Bölge yoksa, yalnızca işaretçi karakterlerini ekleyin ve imleci aralarına konumlandırın. CHAR, işaretleyici karakter olmalıdır. Bir boşluksa, seçilen bölgenin vurgusunu kaldırmak anlamına gelir. CHAR verilmezse (örneğin etkileşimli bir çağrıda) istenir.


8

İşaretleme karakterlerinin eklenmesini kolaylaştırmak için 1'i kullanabilirsiniz . Aşağıdaki kodu init dosyanıza ekleyin: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)

Yerine bu ile, tüm yapmanız gereken mark-up karakterler içeren bir bölgeyi sarmak için (karşılık gelen karakter basın olduğunu *, /, =, _, ~, veya +) bir kere.

Ek bir avantaj olarak, Emacs bölge yoksa otomatik olarak eşleşen işaretleme karakter çiftlerini noktaya ekler. Örneğin, pres *ekleyecektir **sen noktasını taşımak zorunda kalmadan yazmaya devam edebilmesi için iki karakter arasındaki noktasını bırakın.


1 Bu mod yerleşiktir; kullanmak için herhangi bir üçüncü taraf paketi yüklemenize gerek yoktur.


1
Teşekkür ederim! Dürüst olmak gerekirse, bu en temiz ve en açık cevaptır. Tatlı sürpriz, electric-pair-modeçifti seçilen bir bölgeye de uygulamaktır. Her zaman elektrikli çiftlerin sadece çift eklemek için olduğunu düşünüyorum.
ephsmith

2
Bu yaklaşımdaki sorun olduğunu *ve /yaygın örneğin tipik Org modu belgelerinde kullanılan *kafayla başlar. Benzer şekilde, uzun biçimli metne eğik çizgi yazıyorsanız, her seferinde silmeniz gereken fazladan bir eğik çizgi vardır.
PlagueHammer

5

wrap-regionBir bölgeyi istediğiniz herhangi bir karakterle sarmak için paketi (Melpa'da da mevcuttur) kullanabilirsiniz. Bu elbette ana mod başına yapılandırılabilir.

(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-regionPaketi (Melpa da mevcuttur) çok iyi bu paketi tamamlar.

kullanım

  • Sözcük veya tümceciği seçtiğiniz tuş bağını kullanarak seçersiniz er/expand-region.
  • Hit *kalın olarak (o bölgeyi vurgulamak org-mode).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.