2013-03-11 6 views
7

ricevo questo messaggio di errore quando provo a caricare "german8" dizionario ortografico durante l'utilizzo flyspell-mode in modalità testo:Emacs e ispell: errore di caricamento german8

Error in post-command-hook (flyspell-post-command-hook): (error "Error: The file "/usr/lib/aspell/deutsch\" can not be opened for reading.") 

Ho controllato e non c'è/usr/lib/aspell/deutsch. Il gestore di pacchetti synaptic di Ubuntu mi ha offerto "aspell-de" e questo non è stato chiaro.

Ecco il codice nel mio .emacs che è iniziato il problema:

;;switch dictionaries between German and English with F8 key 
(defun fd-switch-dictionary() 
     (interactive) 
     (let* ((dic ispell-current-dictionary) 
     (change (if (string= dic "deutsch8") "english" "deutsch8"))) 
     (ispell-change-dictionary change) 
     (message "Dictionary switched from %s to %s" dic change) 
     )) 

(global-set-key (kbd "<f8>") 'fd-switch-dictionary) 

posso ripetere questo stesso errore, semplicemente partendo flyspell-mode quindi cercando di fare ispell-cambio-dizionario. german8 viene offerto, ma appare di nuovo il messaggio:

Error enabling Flyspell mode: 
(Error: The file "/usr/lib/aspell/german" can not be opened for reading.) 

risposta

1

Recentemente, alcuni vecchi e spesso utilizzati alias dizionario sembrano essere stati rimossi dal pacchetto aspell tedesca. Ciò ha reso obsolete le definizioni del dizionario tedesco di emacs. Prova ad aggiungere questo alla tua .emacs:

(eval-after-load "ispell" 
    '(add-to-list 'ispell-dictionary-alist 
       '("deutsch8" 
        "[a-zA-ZäöüßÄÖÜ]" "[^a-zA-ZäöüßÄÖÜ]" "[']" t 
        ("-C" "-d" "de_DE-neu.multi") 
        "~latin1" iso-8859-1))) 
+0

Grazie per l'aiuto, ma non funziona davvero. Ricevo ancora 'codice'" Avvio del nuovo processo di Ispell [/ usr/bin/aspell :: default] ... Processo di Ispell ucciso Dizionario Ispell locale impostato su deutsch8 Dizionario passato da nil a deutsch8 Avvio del nuovo processo di Ispell [/ usr/bin/aspell :: deutsch8] ... Errore nel post-comando-hook (flyspell-post-command-hook): (errore "Errore: il file \"/usr/lib/aspell/deutsch \ "può non essere aperto per la lettura. ")" 'codice' – user2054900

+0

.../usr/lib/aspell/deutsch non esiste. Ho bisogno di un link simbolico a qualcosa? – user2054900

+0

Il mio errore. Stai cercando di usare il dizionario "deutsch8", ma la mia definizione è stata definita "german8". La mia risposta dovrebbe essere risolta ora. –

1

Ho incontrato lo stesso problema su Arch Linux: installato aspell-ru dizionario, ma quando l'ho fatto ispell-change-dictionary russian in emacs (russian essendo il nome proposto per il dizionario), è tornato con

Error: The file \"/usr/lib/aspell-0.60/russian\" can not be opened for reading. 

Così ho fatto pacman -Ql aspell-ru e si scopre che ru è il nome del dizionario, non russian. Quindi, ispell-change-dictionary ru ha funzionato bene.

Verificare il nome effettivo del file del dizionario.

4

Avevo esattamente lo stesso problema, ma ho trovato una soluzione molto semplice. Presumo

  • tuo correttore ortografico Emacs è impostato su aspell, vale a dire, (setq-default ispell-program-name "aspell")

  • dizionario aspell appropriata è installato, ad esempio apt-get install aspell-de.

Per qualche ragione sembra che ci sia un bug nella lista dei dizionari che Ispell "vede", vale a dire, l'elenco dei dizionari disponibili quando si esegue ispell-change-dictionary. Quando si seleziona "deutsch" tenta di caricare "/usr/lib/aspell/deutsch\". Tuttavia sembra che i nomi dei dizionari di aspell siano cambiati, dal momento che aspell-de contiene ora dizionari chiamati de_DE*. Immagino che l'idea della risposta di @Daniel Ralston sia quella di risolvere questo problema, ma questo non ha funzionato per me. Ho anche provato a passare i nomi dei dizionari effettivi a ispell-change-dictionary, ma in qualche modo ha insistito per ottenere un dizionario dalla sua lista e non ho mai potuto convincerlo che il mio dizionario fosse effettivamente corretto.

Ciò che funziona per me è una semplice correzione di collegamento simbolico. All'inizio non ero sicuro di cosa dovrei collegare, perché l'errore sembra provare a caricare il dizionario da una directory chiamata "deutsch". Ma si è scoperto che è in realtà alla ricerca di un tipico file aspell .alias.Quindi, utilizzando questo link simbolico

sudo ln -s /usr/lib/aspell/de_DE.alias /usr/lib/aspell/deutsch.alias 

ora posso semplicemente scegliere "deutsch" in ispell-change-dictionary.

+0

Il collegamento simbolico è una soluzione semplice che ha funzionato immediatamente per me. –

+0

Per me, questo ha funzionato: ho installato il pacchetto 'aspell-de' (tramite apt, non all'interno di Emacs), riavviato Emacs e selezionato un dizionario tedesco. Nessun collegamento simbolico necessario. Non è stato creato automaticamente, neanche. –

0

stesso problema in stessa soluzione elementare OS installare il pacchetto aspell-ES e aspell-eu-es:

sudo apt-get install aspell-es aspell-eu-es 

tutti lavorando bene.