Faça o hunspell funcionar com emacs e idioma alemão

6

Eu quero fazer hunspell trabalhar com emacs24 e um dicionário alemão em um Ubuntu 13.04-box.

Para isso, instalei hunspell e hunspell-de e adicionei o seguinte ao meu arquivo .emacs :

(setq ispell-program-name "hunspell")
(setq ispell-dictionary "deutsch8")

Quando eu abro um arquivo no emacs e inicio flyspell-buffer eu recebo Starting new Ispell process [[hunspell::deutsch8]] mas ele bloqueia o buffer do emacs (o mouse se torna um disco rotativo indicando a espera) e funciona sem fim sem mostrar nenhum resultado. Então deve haver algo errado com a minha configuração.

Sem a segunda linha, funciona apenas para textos em inglês.

Então, qual é a melhor maneira de configurar hunspell para emacs24 com um dicionário alemão no Ubuntu 13.04? Existem possíveis armadilhas?

    
por student 13.08.2013 / 12:06

2 respostas

4

Para verificar se o dicionário está listado no caminho, execute hunspell -D . Deve produzir algo ao longo destas linhas:

...
/usr/share/hunspell/en_US
/usr/share/hunspell/de_BE
/usr/share/hunspell/de_LU
/usr/share/hunspell/de_DE
...

Em seguida, adicione seus dicionários preferenciais a ispell-local-dictionary-alist no seu arquivo .emacs

(add-to-list 'ispell-local-dictionary-alist '("deutsch-hunspell"
                                              "[[:alpha:]]"
                                              "[^[:alpha:]]"
                                              "[']"
                                              t
                                              ("-d" "de_DE"); Dictionary file name
                                              nil
                                              iso-8859-1))

(add-to-list 'ispell-local-dictionary-alist '("english-hunspell"
                                              "[[:alpha:]]"
                                              "[^[:alpha:]]"
                                              "[']"
                                              t
                                              ("-d" "en_US")
                                              nil
                                              iso-8859-1))

(setq ispell-program-name "hunspell"          ; Use hunspell to correct mistakes
      ispell-dictionary   "deutsch-hunspell") ; Default dictionary to use

Além disso, você pode definir uma função para alternar entre os dicionários alemão e inglês e vinculá-lo a C-c d , por exemplo

(defun switch-dictionary-de-en ()
  "Switch german and english dictionaries."
  (interactive)
  (let* ((dict ispell-current-dictionary)
         (new (if (string= dict "deutsch-hunspell") "english-hunspell"
                   "deutsch-hunspell")))
    (ispell-change-dictionary new)
    (message "Switched dictionary from %s to %s" dict new)))

(global-set-key (kbd "C-c d") 'switch-dictionary-de-en)
    
por 02.02.2014 / 21:12
0

De link

Add

;; Set $DICPATH to "$HOME/Library/Spelling" for hunspell.
(setenv
  "DICPATH"
  "/path/to/hunspell/dictionary")
;; Tell ispell-mode to use hunspell.
(setq
  ispell-program-name
  "hunspell")

into your ~/.emacs.

Meus arquivos de dicionário estavam em /usr/share/hunspell .

    
por 23.02.2017 / 23:10