Karışık kod bloklarında flyspell tetiklemesi olmadan kuruluş tamponlarında nasıl flyspell kullanılır?


19

Emacs'ta bir kuruluş tamponunu şöyle düşünün:

* Title

Some text describing the title and the codew (sic) and whatnot.

#+BEGIN_SRC emacs_lisp
(setq backup-by-copying t)
#+END_SRC

Flyspell org arabelleğini kontrol etmek istiyorum (ve yazım hatasını yakalamak) ama # + BEGIN_SRC ve # + END_SRC işaretleri arasındaki içeriği yok saymak istiyorum. Bu nasıl olur?


2
Görünüşe göre birisi flyspell-generic-check-word-predicatehenüz icat edilmemişse, bazı kodları yazması gerekecek gibi görünüyor . İşte flyspell için ilgili konu flyspell-generic-check-word-predicate: superuser.com/a/345461/206164 ; ve işte, ispell için yarı ilişkili bir konu ispell-skip-region-alist, ancak flyspell ile ilgili değil: emacs.stackexchange.com/a/2103/2287
lawlist

emacs.stackexchange.com/a/2103/2609 yardımcı olabilir mi?
İsim


1
@grettke: Bir dupe gibi görünüyor, ama değil. Ispell ayarlarının değiştirilmesi Flyspell'deki sorunu gerçekten çözmez. En azından denediğimde değil.
Brian Z

İhtiyacınız olduğunda v8.3'teki kutudan çıkar ox.
rasmus

Yanıtlar:


12
;; NO spell check for embedded snippets
(defadvice org-mode-flyspell-verify (after org-mode-flyspell-verify-hack activate)
  (let* ((rlt ad-return-value)
         (begin-regexp "^[ \t]*#\\+begin_\\(src\\|html\\|latex\\|example\\|quote\\)")
         (end-regexp "^[ \t]*#\\+end_\\(src\\|html\\|latex\\|example\\|quote\\)")
         (case-fold-search t)
         b e)
    (when ad-return-value
      (save-excursion
        (setq b (re-search-backward begin-regexp nil t))
        (if b (setq e (re-search-forward end-regexp nil t))))
      (if (and b e (< (point) e)) (setq rlt nil)))
    (setq ad-return-value rlt)))

Lütfen ispell-skip-region-alist ifadesinin flyspell tarafından KULLANILMADIĞINI unutmayın.

Yerleşik kuruluş modu ile Emacs 24.3, 24.4, 24.5, 25.1 üzerinde test

Çoğu kullanıcı varsayılan olarak flyspell'i açar. Yukarıdaki kod yeterlidir.

Ama org dosyasında sinek modunu etkinleştirmiyorum. Manuel olarak M-x flyspell-buffertekrar tekrar tercih ederim . Bu yüzden (flyspell-mode 1) (flyspell-mode -1)org-mode-hook'a ihtiyacım var . Evet, açın ve sineklik modunu kapatın. Amaç, kuruluş modunun varsayılan yükleminin yüklendiğinden emin olmaktır.


Normal ifadeye alıntı eklemenizi öneririm, örneğin: `(begin-regexp" ^ [\ t] * # \\ + begin _ \ (src \\ | html \\ | latex \\ | quote \) ") (end- regexp "^ [\ t] * # \\ + son _ \ (src \\ | html \\ | lateks \\ | alıntı \)") `
prjorgensen
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.