我无法在Windows XP上使用Emacs 24.2.1和Hunspell 1.3.2进行拼写检查。
我已阅读内置手册中有关拼写的帮助,并在互联网上搜索,我发现建议将这些行包含在我的~/.emacs.d/init.el
文件中。
(setq ispell-dictionary-alist
'((nil ; default
"[a-zäöüßA-ZÄÖÜ]" "[^a-zäöüßA-ZÄÖÜ]" "[']" t
("-d" "C:\\Dokumente und Einstellungen\\ojones\\Eigene Dateien\\dictionaries\\de_DE_frami" "-i" "utf-8") nil utf-8)
("english"
"[A-Za-z]" "[^A-Za-z]" "[']" nil
("-d" "en_GB") nil utf-8)
("german"
"[a-zäöüßA-ZÄÖÜ]" "[^a-zäöüßA-ZÄÖÜ]" "[']" t
("-d" "'C:\\Dokumente und Einstellungen\\ojones\\Eigene Dateien\\dictionaries\\de_DE_frami'" "-i" "utf-8") nil utf-8)
("british"
"[A-Za-z]" "[^A-Za-z]" "[']" nil
("-d" "en_GB") nil utf-8)))
(eval-after-load "ispell"
(progn
(setq ispell-dictionary "german"
ispell-extra-args '("-a" "-i" "utf-8") ; aspell doesn't understand -i utf-8, hunspell needs it
ispell-silently-savep t)))
(setq ispell-program-name "C:\\Dokumente und Einstellungen\\ojones\\Eigene Dateien\\hunspell-mingw-1.3.2-win32\\bin\\hunspell.exe")
我对词缀和词典文件以及hunspell.exe的路径进行了更改。
我通过在命令行上执行它来验证hunspell的工作原理。
当我在emacs中输入M-x ispell
时,我收到以下错误消息
无法为名为“german”的词典打开词缀或词典苍蝇 @(#)国际Ispell版本3.2.06(但真的是Hunspell 1.3.2)
@(#)国际Ispell版本3.2.06(但真的是Hunspell 1.3.2)
我尝试将我的init.el中的词缀和词典文件的路径更改为词缀和词典的名称,即"de_DE_frami"
,因为hunspell知道在哪里找到它们,但它没有帮助在emacs。
答案 0 :(得分:1)
我越来越接近解决方案了。
因为Emacs在ispell-dictionary-alist
之后覆盖了变量M-x ispell
,所以我改变了使用ispell-local-dictionary-alist
的方法。
这是我~/.emacs.d/init.el
现在的样子:
(setq ispell-program-name "C:\\Dokumente und Einstellungen\\ojones\\Eigene Dateien\\hunspell-mingw-1.3.2-win32\\bin\\hunspell.exe")
(setq ispell-local-dictionary-alist
'(("en_GB"
"[[:alpha:]]"
"[^[:alpha:]]"
"[']" nil ("-r") nil utf-8)
("de_DE_frami"
"[a-zäöüßA-ZÄÖÜ]" "[^a-zäöüßA-ZÄÖÜ]" "[']" nil
("-r") nil utf-8)))
当我启动Emacs时,我必须按M-x ispell-change-dictionary
更改字典,然后选择例如de_DE_frami。
有效。但它仍然无法正常工作。
我在使用M-x ispell
:
Ispell错位:单词`Einf \ 303'指向118;可能是不兼容的版本
“Einführung”这个词有问题。我猜“ü”就是问题所在。
通过M-$
检查单词我收到以下错误消息:
Ispell及其进程有不同的角色地图
有什么建议吗?
答案 1 :(得分:0)
字符串文字中的单个反斜杠肯定是错误的:在elisp中,它们是转义符,并为后面的字符赋予特殊含义,或引用该字符。
将\
替换为\\
:"C:\\Dokumente....."
。通过 Ch v init.el
输入并检查`ispell-dictionary-alist的值,确保您的ispell-dictionary-alist
确实已加载。
答案 2 :(得分:0)
我对init.el做了一些更改,现在不再出现无法打开词缀和词典文件的错误消息。但是我得到了一个新的错误。
这是我修改过的init.el
(setq ispell-dictionary-alist
'((nil ; default
"[a-zäöüßA-ZÄÖÜ]" "[^a-zäöüßA-ZÄÖÜ]" "[']" t
("-d" "de_DE_frami") nil utf-8)
("en_GB"
"[A-Za-z]" "[^A-Za-z]" "[']" nil
("-d" "en_GB") nil utf-8)
("de_DE_frami"
"[a-zäöüßA-ZÄÖÜ]" "[^a-zäöüßA-ZÄÖÜ]" "[']" t
("-d" "de_DE_frami") nil utf-8)))
(eval-after-load "ispell"
(progn
(setq ispell-dictionary "de_DE_frami"
ispell-extra-args '("-a" "-i" "utf-8") ; aspell doesn't understand -i utf-8, hunspell needs it
ispell-silently-savep t)))
(setq ispell-program-name "C:\\Dokumente und Einstellungen\\ojones\\Eigene Dateien\\hunspell-mingw-1.3.2-win32\\bin\\hunspell.exe")
我将ispell-dicationary-alist中的词典名称更改为他们拥有的名称,例如我改变了"德国"到" de_DE_frami"。我确保字典和词缀文件保存在hunspell找到它们的地方(我通过命令行执行hunspell验证它有效)。
现在,当我按M-x ispell
启动ispell时,没有错误消息,我看到使用M-x list-processes
的ispell进程:
处理:ispell
状态:运行
缓冲区: -
TTY: -
命令:C:\ Dokumente und Einstellungen ... \ hunspell.exe -a -d de_DE_frami -i nil -a -i utf-8
但就我所知,它已经开始工作了。没有任何单词被识别为拼写错误(我将其中一些用于测试目的)。
当我按M-x flyspell-mode
打开flyspell时,会出现以下错误消息:
命令后挂钩错误(flyspell-post-command-hook):(错误"没有数据的字典\" de_DE_frami \",也没有' ispell- local-dictionary-alist'也不是' ispell-dictionary-alist'")
通过输入" ispell-dicationary-alist"检查变量ispell-dicationary-alist是否包含我的init-el中指定的内容。在暂存缓冲区中并按下该行末尾的C-j
,我收到了这个意外的文本:
(("希伯来"" [\ 340 \ 341 \ 342 \ 343 \ 344 \ 345 \ 346 \ 347 \ 350 \ 351 \ 353 \ 352 \ 354 \ 356 \ 355 \ 360 \ 357 \ 361 \ 362 \ 364 \ 363 \ 367 \ 366 \ 365 \ 370 \ 371 \ 372]"" [^ \ 340 \ 341 \ 342 \ 343 \ 344 \ 345 \ 346 \ 347 \ 350 \ 351 \ 353 \ 352 \ 354 \ 356 \ 355 \ 360 \ 357 \ 361 \ 362 \ 364 \ 363 \ 367 \ 366 \ 365 \ 370 \ 371 \ 372]""" nil(" -B")nil cp1255)(" svenska"" [A-Za-z \ 345 \ 344 \ 366 \ 351 \ 340 \ 374 \ 350 \ 346 \ 370 \ 347 \ 305 \ 304 \ 326 \ 311 \ 300 \ 334 \ 310 \ 306 \ 330 \ 307]"" [^ A-Za-z \ 345 \ 344 \ 366 \ 351 \ 340 \ 374 \ 350 \ 346 \ 370 \ 347 \ 305 \ 304 \ 326 \ 311 \ 300 \ 334 \ 310 \ 306 \ 330 \ 307]"" [']" nil (" -C")" ~list" iso-8859-1)("斯洛文尼亚"" [A-Za-z \ 301 \ 304 \ 311 \ 315 \ 323 \ 332 \ 324 \ 300 \ 305 \ 245 \ 335 \ 256 \ 251 \ 310 \ 317 \ 253 \ 322 \ 341 \ 344 \ 351 \ 355 \ 363 \ 372 \ 364 \ 340 \ 345 \ 265 \ 375 \ 276 \ 271 \ 350 \ 357 \ 273 \ 362]"" [^ A-Za-z \ 301 \ 304 \ 311 \ 315 \ 323 \ 332 \ 324 \ 300 \ 305 \ 245 \ 335 \ 256 \ 251 \ 310 \ 317 \ 253 \ 322 \ 341 \ 344 \ 351 \ 355 \ 363 \ 372 \ 364 \ 340 \ 345 \ 265 \ 375 \ 276 \ 271 \ 350 \ 357 \ 273 \ 362]&# 34;"" nil(" -B"" -d""斯洛文尼亚")nil iso-8859-2) ("斯洛伐克语" " [A-ZA-Z \ 301 \ 304 \ 311 \ 315 \ 323 \ 332 \ 324 \ 300 \ 305 \ 245 \ 335 \ 256 \ 251 \ 310 \ 317 \ 253 \ 322 \ 341 \ 344 \ 351 \ 355 \ 363 \ 372 \ 364 \ 340 \ 345 \ 265 \ 375 \ 276 \ 271 \ 350 \ 357 \ 273 \ 362]" " [^ A-ZA-Z \ 301 \ 304 \ 311 \ 315 \ 323 \ 332 \ 324 \ 300 \ 305 \ 245 \ 335 \ 256 \ 251 \ 310 \ 317 \ 253 \ 322 \ 341 \ 344 \ 351 \ 355 \ 363 \ 372 \ 364 \ 340 \ 345 \ 265 \ 375 \ 276 \ 271 \ 350 \ 357 \ 273 \ 362]" "" nil(" -B")nil iso-8859-2)(" russianw"" [\ 300 \ 301 \ 302 \ 303 \ 304 \ 305 \ 250 \ 306 \ 307 \ 310 \ 311 \ 312 \ 313 \ 314 \ 315 \ 316 \ 317 \ 320 \ 321 \ 322 \ 323 \ 324 \ 325 \ 326 \ 327 \ 330 \ 331 \ 334 \ 333 \ 332 \ 335 \ 336 \ 337 \ 340 \ 341 \ 342 \ 343 \ 344 \ 345 \ 270 \ 346 \ 347 \ 350 \ 351 \ 352 \ 353 \ 354 \ 355 \ 356 \ 357 \ 360 \ 361 \ 362 \ 363 \ 364 \ 365 \ 366 \ 367 \ 370 \ 371 \ 374 \ 373 \ 372 \ 375 \ 376 \ 377]"" [^ \ 300 \ 301 \ 302 \ 303 \ 304 \ 305 \ 250 \ 306 \ 307 \ 310 \ 311 \ 312 \ 313 \ 314 \ 315 \ 316 \ 317 \ 320 \ 321 \ 322 \ 323 \ 324 \ 325 \ 326 \ 327 \ 330 \ 331 \ 334 \ 333 \ 332 \ 335 \ 336 \ 337 \ 340 \ 341 \ 342 \ 343 \ 344 \ 345 \ 270 \ 346 \ 347 \ 350 \ 351 \ 352 \ 353 \ 354 \ 355 \ 356 \ 357 \ 360 \ 361 \ 362 \ 363 \ 364 \ 365 \ 366 \ 367 \ 370 \ 371 \ 374 \ 373 \ 372 \ 375 \ 376 \ 377]""" nil nil nil windows-1251)(" russian"" [\ 341 \ 342 \ 367 \ 347 \ 344 \ 345 \ 263 \ 366 \ 372 \ 351 \ 352 \ 353 \ 354 \ 355 \ 356 \ 357 \ 360 \ 362 \ 363 \ 364 \ 365 \ 346 \ 350 \ 343 \ 376 \ 373 \ 375 \ 370 \ 371 \ 377 \ 374 \ 340 \ 361 \ 301 \ 302 \ 327 \ 307 \ 304 \ 305 \ 243 \ 326 \ 332 \ 311 \ 312 \ 313 \ 314 \ 315 \ 316 \ 317 \ 320 \ 322 \ 323 \ 324 \ 325 \ 306 \ 310 \ 303 \ 336 \ 333 \ 335 \ 330 \ 331 \ 337 \ 334 \ 300 \ 321]"" [^ \ 341 \ 342 \ 367 \ 347 \ 344 \ 345 \ 263 \ 366 \ 372 \ 351 \ 352 \ 353 \ 3 54 \ 355 \ 356 \ 357 \ 360 \ 362 \ 363 \ 364 \ 365 \ 346 \ 350 \ 343 \ 376 \ 373 \ 375 \ 370 \ 371 \ 377 \ 374 \ 340 \ 361 \ 301 \ 302 \ 327 \ 307 \ 304 \ 305 \ 243 \ 326 \ 332 \ 311 \ 312 \ 313 \ 314 \ 315 \ 316 \ 317 \ 320 \ 322 \ 323 \ 324 \ 325 \ 306 \ 310 \ 303 \ 336 \ 333 \ 335 \ 330 \ 331 \ 337 \ 334 \ 300 \ 321]" "" nil nil nil koi8-r)(" portugues"" [a-zA-Z \ 301 \ 302 \ 307 \ 311 \ 323 \ 340 \ 341 \ 342 \ 351 \ 352 \ 355 \ 363 \ 343 \ 347 \ 372]"" [^ a-zA-Z \ 301 \ 302 \ 307 \ 311 \ 323 \ 340 \ 341 \ 342 \ 351 \ 352 \ 355 \ 363 \ 343 \ 347 \#34;" [']" t(" -C")" ~latin1" iso-8859-1)(& #34;抛光"" [A-Za-z \ 241 \ 243 \ 246 \ 254 \ 257 \ 261 \ 263 \ 266 \ 274 \ 277 \ 306 \ 312 \ 321 \ 323 \ 346 \ 352 \ 361 \ 363]"" [^ A-Za-z \ 241 \ 243 \ 246 \ 254 \ 257 \ 261 \ 263 \ 266 \ 274 \ 277 \ 306 \ 312 \ 321 \ 323 \ 346 \ 352 \ 361 \ 363]"" [。]" nil nil nil iso-8859-2)(" norsk7-tex"" [A-Za z {} \' ^
]" "[^A-Za-z{}\\'^
]"" [\"]" nil(" -d"" norsk& #34;)" ~plaintex" iso-8859-1)(" norsk"" [A-Za-z \ 305 \ 306 \ 307 \ 310 \ 311 \ 322 \ 324 \ 330 \ 345 \ 346 \ 347 \ 350 \ 351 \ 362 \ 364 \ 370]"" [^ A-Za-z \ 305 \ 306 \ 307 \ 310 \ 311 \ 322 \ 324 \ 330 \ 345 \ 346 \ 347 \ 350 \ 351 \ 362 \ 364 \ 370]"" [\"]" nil nil" ~list" iso -8859-1)(" nederlands8"" [A-Za-z \ 300 \ 301 \ 302 \ 303 \ 304 \ 305 \ 307 \ 310 \ 311 \ 312 \ 313 \ 314 \ 315 \ 316 \ 317 \ 322 \ 323 \ 324 \ 325 \ 326 \ 331 \ 332 \ 333 \ 334 \ 340 \ 341 \ 342 \ 343 \ 344 \ 345 \ 347 \ 350 \ 351 \ 352 \ 353 \ 354 \ 355 \ 356 \ 357 \ 361 \ 362 \ 363 \ 364 \ 365 \ 366 \ 371 \ 372 \ 373 \ 374]" " [^ A-ZA-Z \ 300 \ 301 \ 302 \ 303 \ 304 \ 305 \ 307 \ 310 \ 311 \ 312 \ 313 \ 314 \ 315 \ 316 \ 317 \ 322 \ 323 \ 324 \ 325 \ 326 \ 331 \ 332 \ 333 \ 334 \ 340 \ 341 \ 342 \ 343 \ 344 \ 345 \ 347 \ 350 \ 351 \ 352 \ 353 \ 354 \ 355 \ 356 \ 357 \ 361 \ 362 \ 363 \ 364 \ 365 \ 366 \ 371 \ 372 \ 373 \ 374]" " [']" t(" -C")nil iso-8859-1)(" nederlands"" [A-Za-z \ 300 \ 301 \ 302 \ 303 \ 304 \ 305 \ 307 \ 310 \ 311 \ 312 \ 313 \ 314 \ 315 \ 316 \ 317 \ 322 \ 323 \ 324 \ 325 \ 326 \ 331 \ 332 \ 333 \ 334 \ 340 \ 341 \ 342 \ 343 \ 344 \ 345 \ 347 \ 350 \ 351 \ 352 \ 353 \ 354 \ 355 \ 356 \ 357 \ 361 \ 362 \ 363 \ 364 \ 365 \ 366 \ 371 \ 372 \ 373 \ 374]"" [^ A-Za -z \ 300 \ 301 \ 302 \ 303 \ 304 \ 305 \ 307 \ 310 \ 311 \ 312 \ 313 \ 314 \ 315 \ 316 \ 317 \ 322 \ 323 \ 324 \ 325 \ 326 \ 331 \ 332 \ 333 \ 334 \ 340 \ 341 \ 342 \ 343 \ 344 \ 345 \ 347 \ 350 \ 351 \ 352 \ 353 \ 354 \ 355 \ 356 \ 357 \ 361 \ 362 \ 363 \ 364 \ 365 \ 366 \ 371 \ 372 \ 373 \ 374 ]"" [']" t(" -C")nil iso-8859-1)...)
当Emacs被frehly启动时,我的init.el正确设置变量ispell-dictionary-alist。
希望这有助于追踪问题。
最佳奥利弗