Welche Möglichkeiten gibt es, um die Rechtschreibprüfung in Emacs durchzuführen?

19

Da ich derzeit in Emacs viele nicht programmierbare Aufgaben erledige, wurde die Rechtschreibprüfung erneut zu einem meiner Hauptanliegen.

Mir ist aufgefallen, dass es noch keine Frage zu den Optionen für die Rechtschreibprüfung in Emacs gibt.

Welche Möglichkeiten habe ich, in Emacs die Rechtschreibprüfung durchzuführen?

Speziell,

  • für die allgemeine Rechtschreibprüfung, dh sinnvolle Vorschläge für Tippfehler, Rechtschreibkorrektur von Wörtern
  • zur selektiven Rechtschreibprüfung, zB Allzweck-Rechtschreibprüfung, jedoch nur in Kommentaren
  • für alles, was ich vergessen habe oder nicht weiß, aber Sie können sich denken (Rechtschreibprüfung im Zusammenhang, duh ...)

Edit: Abgegabelt von den "anderen" Sachen in einer separaten Frage, Welche Möglichkeiten gibt es, um bessere Texte in Emacs zu schreiben

elemakil
quelle
1
Ich empfehle diese Seite: Rechtschreibung in Emacs
Luke
1
Aus heutiger Sicht ist diese Frage zu weit gefasst . Ich schlage vor, es auf den zweiten Aufzählungspunkt zu beschränken (Rechtschreibprüfung auswählen), und möglicherweise separat nach der Grammatik zu fragen.
Gilles 'SO - hör auf, böse zu sein'
Nur Ihre ersten beiden Punkte betreffen die Rechtschreibprüfung. Grammatik und Sprache sind keine Rechtschreibprüfung, und Ihre letzten drei Punkte würden eine völlig andere Frage stellen.
Malabarba
1
Obwohl ich nicht wirklich der Meinung bin, dass die ursprüngliche Frage zu weit gefasst war oder sich aus zwei sehr unterschiedlichen Fragen zusammensetzte, habe ich den zweiten Teil gegabelt. Diese Frage betrifft nur noch die Rechtschreibprüfung, die andere die Grammatikprüfung und das Schreiben besserer Texte.
Elemakil

Antworten:

10
  • Für die allgemeine Rechtschreibprüfung gibt es einige beliebte Alternativen
    1. ispellund Freunde: Eingebaut in Emacs und normalerweise mit ispell-buffer. Überprüft die Rechtschreibung nur auf Anfrage.
    2. flyspell-mode: Ebenfalls integriert und bietet eine sofortige Rechtschreibprüfung und zeigt Fehler an.
    3. speck-mode: Bei MELPA verfügbar, überprüft es die Schreibweise des Wortes, sobald Sie nach der Eingabe eine Pause einlegen. Hat auch ein paar Unterscheidungsmerkmale vom Flyspell-Modus wie die Möglichkeit, mehrere Wörterbücher im gleichen Puffer zu verwenden. (Haftungsausschluss: Ich habe diesen Modus vor langer Zeit nur kurz verwendet.)

Beachten Sie, dass für alle oben genannten Funktionen spezielle Programme zur Rechtschreibprüfung erforderlich sind, z. B. aspelloder hunspellund entsprechende Wörterbücher. Die Modi bieten nur eine praktische Emacs-Schnittstelle für die Befehlszeilenprogramme.

  • Zur selektiven Rechtschreibprüfung können Sie flyspell-modedie Variable anpassen , flyspell-generic-check-word-predicateindem Sie eine Funktion verkabeln, mit der ausgewählt wird, welche Wörter überprüft werden müssen. Ihr aufgeführtes Beispiel ist jedoch einfach - Verwenden Sie einfach, um flyspell-prog-modenur Kommentare in Codepuffern zu überprüfen.
Vamsi
quelle
1
Lassen Sie mich zunächst für Ihre Antwort danken. Nach den Kommentaren von Gilles und Malabarba habe ich die Frage in zwei Teile gegabelt. Daher würde ich vorschlagen, dass Sie den zweiten Teil Ihrer Antwort (den ungefähren weasel-word) als Antwort auf die neue Frage posten . Sie finden den Link in meiner ursprünglichen Frage.
elemakil
Bitte ergänzen Sie wcheckIhre Liste. Es ist sehr gut, obwohl flyspelles in letzter Zeit so gut geworden ist, dass ich es nicht wcheckmehr benutze .
Rasmus
Für OSX bietet die stark angepasste Version von Emacs namens Aquamacs eine integrierte Unterstützung für die native OSX-Rechtschreibprüfung (einschließlich des vom Benutzer hinzugefügten OSX-Benutzerwörterbuchs). Das ist eine Spezialität, die keine andere Emacs-Version bieten kann.
Gesetzesliste
6

@ Vamsis Antwort bezieht sich bereits auf die allgemeine und selektive Rechtschreibprüfung. Aber was ist mit der personalisierten Autokorrektur ? @Malabarba hat einen schönen Beitrag zu diesem Thema in seinem Blog . Die Grundidee besteht darin, Paare von falsch geschriebenen Wörtern und entsprechende Korrekturen als Abkürzungen zu speichern . Hier ist (eine leicht modifizierte Version von) der Code, mit dem Sie dies einfach tun können:

(defun ispell-word-then-abbrev (p)
  "Call `ispell-word'. Then create an abbrev for the correction made.
With prefix P, create local abbrev. Otherwise it will be global."
  (interactive "P")
  (let ((before (downcase (or (thing-at-point 'word) "")))
        after)
    (call-interactively 'ispell-word)
    (setq after (downcase (or (thing-at-point 'word) "")))
    (unless (string= after before)
      (define-abbrev
        (if p local-abbrev-table global-abbrev-table) before after))
      (message "\"%s\" now expands to \"%s\" %sally."
               before after (if p "loc" "glob"))))

(define-key ctl-x-map (kbd "C-i") 'ispell-word-then-abbrev)
(setq save-abbrevs t)
(setq-default abbrev-mode t)

Mit diesem können Sie einfach

  1. traf C-x C-inach einem falsch geschriebenen Wort
  2. Wählen Sie eine Korrektur und
  3. Mach dir nie wieder Sorgen

denn ab jetzt ersetzt Emacs automatisch die falsch geschriebene Version des Wortes durch die Korrektur. Es ist schwer in Worte zu fassen, wie nützlich dies ist!


Wenn Sie Emacs wollen neugewonnenen Fähigkeiten Auto-Korrektur aufzuladen, können Sie die abbrevs hinzufügen definiert hier auf Ihre abbrev_defsDatei.

itsjeyd
quelle