Quali opzioni ci sono per fare il controllo ortografico in emacs


19

Poiché attualmente sto svolgendo molte attività non di programmazione in Emacs, il controllo ortografico è tornato ad essere una delle mie maggiori preoccupazioni.

Ho notato che non ci sono ancora domande relative alle opzioni per il controllo ortografico in Emacs, quindi eccoci qui:

Quali sono le mie opzioni per eseguire il controllo ortografico in Emacs?

In particolare,

  • per il controllo ortografico per scopi generici, ovvero suggerimenti sensibili per errori di battitura, correzione ortografica delle parole
  • per il controllo ortografico selettivo, ad es. controllo ortografico generico ma solo nei commenti
  • per tutto ciò che ho dimenticato o di cui non sono a conoscenza ma che puoi pensare (controllo ortografico, duh ...)

Modifica: biforcando le "altre" cose in una domanda separata, quali opzioni ci sono per scrivere testi migliori in emacs


1
Consiglio questa pagina: Ortografia in Emacs
Luca

1
Allo stato attuale questa domanda è troppo ampia . Suggerisco di limitarlo al secondo punto (selezionando il controllo ortografico) e forse chiedere la grammatica separatamente.
Gilles 'SO- smetti di essere malvagio' il

Solo i tuoi primi due articoli riguardano il controllo ortografico. La grammatica e la lingua non controllano l'ortografia e i tuoi ultimi tre articoli farebbero una domanda completamente diversa.
Malabarba,

1
Anche se non sono davvero d'accordo sul fatto che la domanda originale fosse troppo ampia o composta da due domande molto diverse, ho rinunciato alla seconda parte. Questa domanda ora riguarda solo il controllo ortografico, l'altro sul controllo grammaticale e la scrittura di testi migliori.
elemakil,

Risposte:


10
  • Per il controllo ortografico generico, ci sono alcune alternative popolari
    1. ispelle amici: integrato in emacs e in genere chiamato con ispell-buffer. Controlla l'ortografia solo su richiesta.
    2. flyspell-mode: Anche integrato e fornisce il controllo ortografico al volo ed evidenzia gli errori.
    3. speck-mode: Disponibile da MELPA, controlla l'ortografia della parola una volta che ti fermi dopo aver digitato. Ha anche alcune caratteristiche distintive dalla modalità flyspell, come la possibilità di utilizzare più dizionari nello stesso buffer. (Dichiarazione di non responsabilità: ho usato questa modalità solo brevemente molto tempo fa)

Si noti che tutto quanto sopra richiede programmi dedicati di controllo ortografico come aspello hunspelldizionari appropriati. Le modalità forniscono solo una comoda interfaccia emacs ai programmi della riga di comando.

  • Per il controllo ortografico selettivo, è possibile personalizzare flyspell-modecon la variabile flyspell-generic-check-word-predicatecablando una funzione che seleziona le parole da controllare. L'esempio che hai elencato è semplice: usa flyspell-prog-modesolo che controlla solo i commenti nei buffer di codice.

1
Innanzitutto, vorrei ringraziarti per la tua risposta. In seguito ai commenti di Gilles e Malabarba ho suddiviso la domanda in due parti. Pertanto, suggerirei di pubblicare la seconda parte della risposta (quella relativa weasel-word) come risposta alla nuova domanda. Puoi trovare il link nella mia domanda originale.
elemakil,

Si prega di aggiungere wcheckalla tua lista. È molto buono, sebbene flyspellultimamente sia diventato così buono, che non lo uso wcheckpiù.
rasmus

Per OSX, la versione altamente personalizzata di Emacs chiamata Aquamacs ha il supporto integrato per il controllo ortografico nativo OSX (incluso il dizionario utente OSX di parole che sono state aggiunte dall'utente). Questo è un oggetto speciale che nessun'altra versione di Emacs può offrire.
elenco delle leggi del

6

La risposta di @ Vamsi copre già il controllo ortografico generico e selettivo. Ma per quanto riguarda l'auto-correzione personalizzata ? @Malabarba ha un bel post su questo argomento sul suo blog . L'idea di base è di memorizzare coppie di parole errate e correzioni appropriate come Abbrevs . Ecco (una versione leggermente modificata di) il codice che ti consente di farlo facilmente:

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

Con questo in atto, puoi semplicemente

  1. colpito C-x C-idopo una parola errata
  2. selezionare una correzione e
  3. non preoccuparti più

perché d'ora in poi Emacs sostituirà automaticamente la versione errata della parola con la correzione. È difficile esprimere a parole quanto sia utile!


Se vuoi potenziare le nuove funzionalità di correzione automatica di Emacs, puoi aggiungere gli abbreviati qui definiti al tuo abbrev_defsfile.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.