얽힌 코드 블록에서 플라이 스펠 트리거링없이 조직 버퍼에서 플라이 스펠을 어떻게 사용합니까?


19

Emacs에서 다음과 같은 조직 버퍼를 상상해보십시오.

* Title

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

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

flyspell에서 조직 버퍼를 확인하고 맞춤법 오류를 포착하고 있지만 # + BEGIN_SRC와 # + END_SRC 표시 사이의 내용은 무시하고 싶습니다. 어떻게해야합니까?


2
flyspell-generic-check-word-predicate아직 발명되지 않은 경우 누군가를 사용하여 코드를 작성해야 할 것 같습니다 . 다음은 다음을 사용하는 플라이 스펠 관련 스레드입니다 flyspell-generic-check-word-predicate. superuser.com/a/345461/206164 ; 그리고 여기 ispell-skip-region-alist에을 사용 하지만 플라이 스펠 과 관련이없는 반음 관련 반 스레드 가 있습니다 : emacs.stackexchange.com/a/2103/2287
lawlist



1
@grettke : 속임수처럼 보이지만 그렇지 않습니다. Ispell의 설정을 변경해도 실제로 Flyspell의 문제가 해결되지는 않습니다. 내가 시도했을 때 적어도 아닙니다.
브라이언 Z

필요할 때 v8.3에서 즉시 작동합니다 ox.
rasmus 2019

답변:


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)))

ispell-skip-region-alist는 flyspell에서 사용되지 않습니다.

내장 org-mode로 Emacs24.3, 24.4, 24.5, 25.1에서 테스트

대부분의 사용자는 기본적으로 flyspell을 켭니다. 위의 코드로 충분합니다.

그러나 조직 파일에서 플라이 스펠 모드를 활성화하지 않습니다. 나는 M-x flyspell-buffer다시 수동으로 선호 합니다. 그래서 나는 (flyspell-mode 1) (flyspell-mode -1)org-mode-hook에 필요합니다 . 예, 플라이 스펠 모드를 켜고 끕니다. 목적은 org-mode의 기본 술어가로드되도록하는 것입니다.


`(begin-regexp "^ [\ t] * # \\ + begin _ \ (src \\ | html \\ | latex \\ | quote \)")와 같이 정규 표현식에 따옴표를 추가하는 것이 좋습니다. regexp "^ [\ t] * # \\ + end _ \ (src \\ | html \\ | latex \\ | quote \)")`
prjorgensen 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.