Kiểm tra chính tả thông minh trong chế độ org


38

Theo mặc định, kết quả chạy M-x ispell-buffertrong chế độ org rất đáng thất vọng.

  1. Ispell nhìn vào bên trong các :PROPERTY:ngăn kéo, thường chứa những thứ như

    :ID:       797495bd-581b-4a42-883b-c2a55a08f08a
    
  2. Nó cố gắng để sửa các tuyên bố org! Ví dụ, nó than phiền về SRCtrong

    #+BEGIN_SRC emacs-lisp
    
  3. Nó đi vào bên trong khối org. Tôi cho rằng điều này có thể hữu ích cho các khối như #+BEGIN_QUOTE, nhưng trong các khối mã nguồn chỉ là ngớ ngẩn.

Có một gói sửa chữa tất cả điều này?

Tôi rất thích kiểm tra chính tả bài viết của mình nhưng số lượng dương tính giả tôi nhận được khiến nó không khả thi.

Nếu có vấn đề, trình kiểm tra chính tả của HĐH là aspell.


Có một vị từ flyspell cho chế độ org (kiểm tra (get 'org-mode 'flyspell-mode-predicate)), nhưng tôi không chắc nó có thể được khái quát hóa như thế nào ispell-buffer.
Legoscia

@legoscia Ispell có một biến được gọi là ispell-parser, vì vậy vị từ của flyspell có thể hoạt động tốt ở đó với một trình bao bọc xung quanh nó.
Malabarba

1
Tôi sử dụng flyspell và hunspell và tôi không thấy hành vi đó. Bất cứ điều gì trong dòng có #+hoặc trong khối mã nguồn không được kiểm tra chính tả. Nhưng văn bản bình thường dưới tiêu đề được kiểm tra. Tôi có những thứ này trong thiết lập flyspell của mình : (add-hook 'prog-mode-hook 'flyspell-prog-mode),(add-hook 'org-mode-hook 'turn-on-flyspell)
Kaushal Modi

@kaushalmodi Vâng, flyspell thông minh hơn ispell. Thật không may, flyspell đòi hỏi một chút về khả năng xử lý máy tính xách tay của tôi :(. Nó không thể sử dụng được, nhưng nó hơi khó chịu, đó là lý do tại sao tôi đã thử dùng ispell.
Malabarba

3
Bạn đã thấy Can I prevent ispell from checking source blocks?trong orgmode.org/worg/org-faq.html chưa?
rvf0068

Câu trả lời:


26

Như rvf0068 đã đề xuất , ispell có thể được cấu hình để bỏ qua các vùng phù hợp với biểu thức chính quy. Ví dụ: để bỏ qua :PROPERTIES:và các :LOGBOOK:ngăn kéo cũng như SRCcác khối, bạn có thể đặt cái này vào .emacstệp của mình :

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

(Tôi mới sử dụng StackExchange, vì vậy nếu tôi đã phá vỡ nghi thức hoặc quy tắc bằng cách mở rộng câu trả lời của rvf0068, vui lòng cho tôi biết.)


4
Tôi không bận tâm chút nào, cảm ơn vì sự phát triển hơn nữa. :)
rvf0068

Đây là những gì tôi muốn ispell bỏ qua: github.com/grettke/home/blob/master/TC3F.org
grettke

Điều đó hữu ích, nhưng quá lớn đối với tôi. Tôi thường có ghi chú trong LOGBOOK của mình rằng tôi muốn được cười thầm.
vanden

1
Các khu vực mà tôi loại trừ: github.com/grettke/home/blob/master/ALEC.org#L4546
grettke

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.