[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Debian]:XEmacs+Flyspell+Dictionaryswitch



Hallo Leute!

Vor geraumer Zeit hat hier *Roland Rosenfeld* ein
(geniales) ELISP-Skript für XEmacs gepostet. Durch
dieses kann per Tastendruck (F4) zwischen verschiedenen
Wörterbüchern on-the-fly umgeschaltet werden kann. :-)

Einfaches Einfügen in ~/.emacs funktioniert leider
nicht (richtig) bei meiner XEmacs-Version (aktuelle
aus Woody). :-(

Durch die Trail&Error Methode habe ich das Skript
ohne Fehlermeldung zum Laufen gebracht. Nun kann
zwischen drei Wörterbuchern (Deutsch-Alt, Deutsch-Neu,
Englisch) mit Hilfe von F4 temporär umgeschaltet
werden. Dies funktioniert auch prima. :-)

Außerdem sollte dann in der Statuszeile auch nicht
mehr 'fly' sondern je nach Sprache 'oGer', 'nGer'
oder 'Eng' stehen, so daß man auf einen Blick sieht,
welche Sprache gerade aktiv ist und sich nicht wundert,
warum flyspell fast jedes Wort als falsch kennzeichnet. 
Das funktioniert leider aus irgendeinem Grund *NICHT*.
Unabhängig vom verwendeten Wörterbuch wird immer
"oGer" angezeigt.

Im folgenden habe ich diese kleine LISP-Routine
hereinkopiert, vielleicht findet sich ja der eine oder
andere LISP-Profi, der mir sagen könnte wo der Fehler
liegt! So wie immer, danke ich bereits im voraus.

KURZE ZUSATZFRAGE: Wie kann ich XEmacs dazu bewegen,
daß er mir in der Statuszeile die Zeilennummer der
aktuellen Cursorposition anzeigt?

...[Schnipp]...

(add-hook 'text-mode-hook 'flyspell-mode)
;;(autoload 'flyspell-mode "flyspell" "On-the-fly ispell." t)
(setq ispell-dictionary "deutsch8")
(setq ispell-local-dictionary "deutsch8")
(setq flyspell-default-dictionary "deutsch8")
(setq flyspell-mode-line-string " oGer")

(make-variable-buffer-local 'flyspell-mode-line-string)
(defvar current-language 0
"state of language toggle:
0 means deutsch8
1 means english
2 means ndeutsch8")
(make-variable-buffer-local 'current-language)

(defun set-language-deutsch
"switch language to deutsch"
(interactive)
(setq current-language 0)
(setq flyspell-mode-line-string " oGer")
(force-mode-line-update)
(ispell-change-dictionary "deutsch8")
(setq sentence-end "[.?!][]\'')}]*\\($\\|[ \t]\\)[ \t\n]*")
(setq sentence-end-double-space nil)
)

(defun set-language-english
"switch language to english"
(interactive)
(setq current-language 1)
(setq flyspell-mode-line-string " Eng")
(force-mode-line-update)
(ispell-change-dictionary "american")
(setq sentence-end "[.?!][]\'')}]*\\($\\| $\\|\t\\| \\)[ \t\n]*");
(setq sentence-end-double-space t)
)

(defun set-language-ngerman
"switch language to ngerman"
(interactive)
(setq current-language 2)
(setq flyspell-mode-line-string " nGer")
(force-mode-line-update)
(ispell-change-dictionary "ndeutsch8")
(setq sentence-end "[.?!][]\'')}]*\\($\\|[ \t]\\)[ \t\n]*")
(setq sentence-end-double-space nil)
)

(defun toggle-language ()
"Toggle language between deutsch8, english and ndeutsch8"
(interactive)
(cond ((eq current-language 0)
(set-language-english))
((eq current-language 1)
(set-language-ngerman))
(t
(set-language-deutsch))))

(global-set-key [f4] 'toggle-language)

...[Schnapp]...

MfG Roman!
-----------------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie bitte eine
E-Mail an majordomo@jfl.de die im Body
"unsubscribe debian-user-de <deine emailadresse>" enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@Lehmanns.de
-----------------------------------------------------------
Anzahl der eingetragenen Mitglieder:     785


Reply to: