Der Wanderer 104
Vergangenen Oktober hatte ich mich zuletzt mit dem in Emacs
integrierten Wörterbuch dictionary.el und mit osx-dictionary
beschäftigt, mit dem man auch das Wörterbuch in macOS in Emacs nutzen
kann. Dann passierte lange Zeit relativ wenig in meiner dotemacs,
weil mir dazu die Zeit fehlte. Letzteres ist derzeit eigentlich immer
noch so. Aber manchmal ist es vernünftig, dem Impuls nachzugeben und
sich einmal wieder der Emacs-Konfiguration zuzuwenden, weil es
erholsam und gut ist, sie zu pflegen. Was noch fehlte, war eine echte
Web-Suche, sowohl in der größten Enzyklopädie ever written als
auch in einer Internet-Suchmaschine.
Die folgende Ergänzung habe ich heute mit kleineren Änderungen aus dem Blog von İsmail Efe Top (via jcs) übernommen. İsmail hatte dort ursprünglich eine Google-Suche für das Wort at-point formuliert. Ich habe das als eine Anregung genommen und für meine Zwecke leicht angepasst, weil es tatsächlich praktisch ist und eine schöne Ergänzung zu meiner Lexikon-Suche darstellt:
(defun wikipedia-search-word-at-point ()
"Search the current word on German Wikipedia using browse-url."
(interactive)
(let ((word (thing-at-point 'word)))
(if word
(browse-url (concat "https://de.wikipedia.org/w/index.php?search=" word))
(message "No lemma found at point."))))
(global-set-key (kbd "M-ä") 'wikipedia-search-word-at-point)
(defun metager-search-word-at-point ()
"Search the current word on MetaGer using browse-url."
(interactive)
(let ((word (thing-at-point 'word)))
(if word
(browse-url (concat "https://metager.de/meta/meta.ger3?eingabe=" word))
(message "No term found at point."))))
(global-set-key (kbd "M-Ä") 'metager-search-word-at-point)
Nachdem ich die Eingabe M-# schon für eine Suche des Terms
at-point im Emacs-Dictionary und M-' entsprechend für die Suche im
osx-dictionary belegt hatte, wählte ich M-ä für die Suche in der
deutschsprachigen Wikipedia und M-Ä für eine ebensolche in meiner
Standardsuchmaschine MetaGer. Die Ä-Taste wählte ich, weil sie direkt
neben der anderen Taste angeordnet ist. Funktioniert sehr schön, wie
erwartet.
Die Fallback-Lösung (eine Nachricht im Minibuffer) kommt nur zum
Einsatz, wenn der Cursor beim Aufruf der Funktion nicht an einem Term
steht, den er an den Server per browse-url übergeben könnte. Das
Fallback-Handling im Übrigen verbleibt beim Server; man wird dann ja
auch schon im Webbrowser sein, so dass man dort die Antwort erwartet.