Quais opções existem para fazer a verificação ortográfica no emacs

19

Como atualmente estou executando muitas tarefas de não programação no Emacs, a verificação ortográfica tornou-se uma das minhas principais preocupações mais uma vez.

Notei que ainda não há perguntas relacionadas às opções de verificação ortográfica no Emacs, então vamos lá:

Quais são minhas opções para fazer a verificação ortográfica no Emacs?

Especificamente,

  • para verificação ortográfica de uso geral, ou seja, sugestões sensatas para erros de digitação, correção ortográfica de palavras
  • para verificação ortográfica seletiva, por exemplo, verificação ortográfica de uso geral, mas apenas em comentários
  • para qualquer coisa que eu esqueci ou não conheço, mas você pode pensar (relacionado à verificação ortográfica, duh ...)

Edit: bifurcou o "outro" material em uma pergunta separada, que opções existem para escrever melhores textos no emacs

elemakil
fonte
1
Eu recomendo esta página: Ortografia no Emacs
Luke
1
Tal como está, esta questão é muito ampla . Sugiro restringi-lo ao segundo ponto (selecionando a verificação ortográfica) e talvez pergunte sobre gramática separadamente.
Gilles 'SO- stop be evil'
Apenas seus dois primeiros itens são sobre verificação ortográfica. Gramática e idioma não são verificação ortográfica, e seus três últimos itens fariam uma pergunta completamente diferente.
Malabarba 14/10
1
Embora eu realmente não concorde que a pergunta original seja muito ampla ou composta de duas questões muito diferentes, bifurquei a segunda parte. Agora, essa pergunta é apenas sobre verificação ortográfica, a outra sobre verificação gramatical e escrita de textos melhores.
elemakil

Respostas:

10
  • Para verificação ortográfica de uso geral, existem algumas alternativas populares
    1. ispelle amigos: incorporados ao emacs e normalmente chamados com ispell-buffer. Verifica a ortografia somente sob demanda.
    2. flyspell-mode: Também integrado e fornece verificação ortográfica em tempo real e destaca erros.
    3. speck-mode: Disponível no MELPA, ele verifica a ortografia da palavra quando você pausa após digitar. Também possui alguns recursos distintos do modo flyspell, como capaz de usar vários dicionários no mesmo buffer. (Isenção de responsabilidade: usei este modo apenas brevemente há muito tempo)

Observe que todas as opções acima requerem programas dedicados de verificação ortográfica, como aspellou hunspelle dicionários apropriados. Os modos fornecem apenas uma interface conveniente do emacs para os programas de linha de comando.

  • Para verificação ortográfica seletiva, você pode personalizar flyspell-modecom a variável flyspell-generic-check-word-predicateconectando uma função que seleciona quais palavras devem ser verificadas. Seu exemplo listado é fácil - use flyspell-prog-modeapenas o que verifica os comentários nos buffers de código.
Vamsi
fonte
1
Primeiro, deixe-me agradecer pela sua resposta. Após os comentários de Gilles e Malabarba, dividi a pergunta em duas partes. Portanto, sugiro que você publique a segunda parte da sua resposta (a que está sobre weasel-word) como resposta à nova pergunta. Você pode encontrar o link na minha pergunta original.
elemakil
Por favor, adicione wcheckà sua lista. É muito bom, embora flyspelltenha se tornado tão bom ultimamente, que eu não uso wcheckmais.
rasmus
Para o OSX, a versão altamente personalizada do Emacs, chamada Aquamacs, possui suporte interno para o verificador ortográfico nativo do OSX (incluindo o dicionário do usuário OSX que acompanha as palavras que foram adicionadas pelo usuário). Esse é um item especializado que nenhuma outra versão do Emacs pode oferecer.
lawlist
6

A resposta de @ Vamsi já cobre verificação ortográfica de uso geral e seletiva. Mas e a correção automática personalizada ? @Malabarba tem um bom post sobre esse tópico em seu blog . A idéia básica é armazenar pares de palavras com erros ortográficos e correções apropriadas como Abbrevs . Aqui está (uma versão ligeiramente modificada) do código que permite fazer isso 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)

Com isso, você pode simplesmente

  1. acertar C-x C-iapós uma palavra com erros ortográficos
  2. selecione uma correção e
  3. nunca mais se preocupe com isso

porque a partir de agora o Emacs substituirá automaticamente a versão incorreta da palavra pela correção. É difícil colocar em palavras o quão útil isso é!


Se você deseja sobrecarregar os novos recursos de correção automática encontrados pelo Emacs, você pode adicionar as abreviações definidas aqui ao seu abbrev_defsarquivo.

itsjeyd
fonte