Pengecekan ejaan yang cerdas dalam mode-org

38

Secara default, hasil menjalankan M-x ispell-bufferdalam mode-org sangat mengecewakan.

  1. Ispell melihat ke dalam :PROPERTY:laci, yang biasanya berisi benda-benda seperti

    :ID:       797495bd-581b-4a42-883b-c2a55a08f08a
    
  2. Mencoba untuk mengoreksi pernyataan org! Misalnya, ia mengeluh tentang SRCin

    #+BEGIN_SRC emacs-lisp
    
  3. Itu masuk ke dalam blok-org. Saya kira ini mungkin berguna untuk blok seperti #+BEGIN_QUOTE, tetapi dalam blok kode sumber itu hanya konyol.

Apakah ada paket yang memperbaiki semua ini?

Saya ingin mengeja-periksa tulisan saya tetapi jumlah positif palsu yang saya dapatkan membuatnya tidak layak.

Jika itu penting, pemeriksa ejaan OS adalah aspell.

Malabarba
sumber
Ada predikat flyspell untuk mode-org (centang (get 'org-mode 'flyspell-mode-predicate)), tapi saya tidak yakin bagaimana itu bisa digeneralisasi ispell-buffer.
legoscia
@legoscia Ispell memiliki variabel yang dipanggil ispell-parser, jadi predikat flyspell mungkin bekerja dengan baik di sana dengan pembungkus di sekitarnya.
Malabarba
1
Saya menggunakan flyspell dan hunspell dan saya tidak melihat perilaku itu. Apa pun yang sejalan dengan #+atau dalam blok kode sumber tidak diperiksa ejaan. Tetapi teks normal di bawah judul diperiksa. Saya memiliki ini di setup flyspell saya: (add-hook 'prog-mode-hook 'flyspell-prog-mode),(add-hook 'org-mode-hook 'turn-on-flyspell)
Kaushal Modi
@kaushalmodi Ya, flyspell lebih pintar dari ispell. Sayangnya, flyspell sedikit menuntut daya pemrosesan laptop saya :(. Ini tidak dapat digunakan, tapi agak menjengkelkan, itulah sebabnya saya mencoba ispell.
Malabarba
3
Pernahkah Anda melihat Can I prevent ispell from checking source blocks?di orgmode.org/worg/org-faq.html ?
rvf0068

Jawaban:

26

Seperti yang disarankan rvf0068 , ispell dapat dikonfigurasi untuk melewati wilayah yang cocok dengan regex. Misalnya, untuk melewati :PROPERTIES:dan :LOGBOOK:laci serta SRCblok, Anda bisa meletakkan ini di .emacsfile Anda :

(add-to-list 'ispell-skip-region-alist '(":\\(PROPERTIES\\|LOGBOOK\\):" . ":END:"))
(add-to-list 'ispell-skip-region-alist '("#\\+BEGIN_SRC" . "#\\+END_SRC"))

(Saya baru mengenal StackExchange, jadi jika saya melanggar etiket atau aturan dengan memperluas jawaban rvf0068, tolong beri tahu saya.)

Saint Aardvark the Carpeted
sumber
4
Saya tidak keberatan sama sekali, terima kasih atas elaborasi lebih lanjut. :)
rvf0068
Inilah yang saya ingin diabaikan oleh ispell
grettke
Itu berguna, tapi palu terlalu besar untukku. Saya sering memiliki catatan di LOGBOOK saya yang ingin saya buang spool.
vanden
1
Wilayah yang saya kecualikan: github.com/grettke/home/blob/master/ALEC.org#L4546
grettke