Pytanie Wady i zalety różnych trybów sprawdzania pisowni w emacs


Zastanawiam się, czy ktokolwiek może rozważyć argumenty za i przeciw różnym trybom pisowni dla Emacsa. Emacswiki-CategorySpelling  Wymienia trzy tryby sprawdzania pisowni:

  • Tryb Flyspell (domyślny)
  • Tryb speck (wydaje się być zaprojektowany tak, aby był szybszy niż flyspell)
  • Tryb Wcheck. (zaprojektowany jako ogólny cel)

Interesuje mnie także, który z tych trybów pozwala narzędziu sprawdzania pisowni na pomijanie części bufora w zależności od jego składni (na przykład w celu pominięcia części trybu matematycznego w dokumencie LaTeX, które są zaznaczone jako brązowe w AUCTEX tryb). Flyspell nie wydaje się tego robić


12
2017-11-08 17:22


pochodzenie


To może dodać do dyskusji: krytyka Xah Lee w trybie Flyspell i sposób działania trybu Speck - xahlee.org/emacs/emacs_spell_checker_problems.html - Yoo


Odpowiedzi:


Możesz wykonać częściowy tryb latania na wiele różnych sposobów. Jednym z nich jest zastosowanie podejścia wielotrybowego, w którym definiuje się wiele trybów w jednym buforze, z których jednym jest tryb edycji komentarzy (na przykład), w którym włączony jest tryb Flyspell. Zrobiłem to dla jakiegoś języka programowania, ale nie mogę już znaleźć jego konfiguracji, więc domyślam się, że nie używam już tego języka. W każdym razie zobacz Tryb mmm po więcej informacji.

Drugą opcją jest użycie "flyspell-prog-mode" (który widzisz), który ustawia tryb flyspell dla niektórych części bufora, zdefiniowanych w tym przypadku przez face font (istnieją specyficzne twarze dla napisów i komentarzy dla większości języków programowania główne tryby). Używa funkcji wywołania zwrotnego, która może być zdefiniowana w dowolny sposób; Utrzymuję TNT, który jest trybem AIM dla Emacsa i używamy go tak:

(defun tnt-im-mode-flyspell-verify ()
  "This function is used for `flyspell-generic-check-word-p' in TNT."
  (not (get-text-property (point) 'read-only)))

(put 'tnt-im-mode 'flyspell-mode-predicate 'tnt-im-mode-flyspell-verify)
(put 'tnt-chat-mode 'flyspell-mode-predicate 'tnt-im-mode-flyspell-verify)

Jeśli chodzi o flyspell vs. speck vs. wcheck - użyłem tylko trybu Flyspell. Speck wydaje się być bardzo zorientowany na to, co jest widoczne, co może być w porządku, ale ogólnie chcę, aby cały dokument, nad którym pracuję, był sprawdzany przez pisownię, więc nie chciałbym tego. wcheck wydaje się być ogólnym interfejsem do zewnętrznego programu; Zgaduję, że będziesz musiał samemu go wykorzystać. Flyspell może być użyty na dwa różne sposoby: jak-ty-typ, jak zwykle go używam, oraz "tryb wsadowy", w którym cały region lub bufor są sprawdzane jednocześnie. Ten pierwszy jest niesamowicie szybki i nigdy nie znalazłem powodu, by szukać lepszego narzędzia. Ta ostatnia może być odrobinę powolna, szczególnie, gdy istnieje wiele błędnie napisanych słów, a dokument jest duży, ale naprawdę nie mogę sobie przypomnieć, aby czekać ponad 15 sekund na jego ukończenie. Oglądanie ekranu przez 15 sekund i robienie niczego nie może wydawać się długim, naprawdę nie jest. YMMV, oczywiście.

Konkluzja: Oczywiście trzymałbym się trybu Flyspell, zakładając, że spełnia twoje oczekiwania.


6