;; -*- lexical-binding: t -*- ;; This file: http://user.it.uu.se/~embe8573/conf/emacs-init/w3m/w3m-unisearch.el (require 'w3m) (require 'w3m-search) (require 'w3m-tabs) (require 'edit) (require 'get-search-string) (require 'my-string) (defun add-one-shot-hook-args-ignored (hook fun) (let ((name (cl-gensym))) (setf (symbol-function name) (lambda (&rest _unused) (remove-hook hook name) (funcall fun) )) (add-hook hook name) )) (defun enable-jump (jump) (add-one-shot-hook-args-ignored 'w3m-display-hook jump) ) (defun web-search () (interactive) (let*((search-engine "Google") (search (get-search-string search-engine))) (unless (empty-string-p search) (let ((tab-label (format "%s: %s" search-engine search))) (w3m-new-tab tab-label) (w3m-search w3m-search-default-engine search) )))) (defun number-one-jump () ; Google, Youtube (when (re-search-forward "^ 1." (point-max) t) (recenter 0) (w3m-next-anchor) )) (defun emacs-wiki-jump () (when (search-forward "EmacsWiki" (point-max) t) (beginning-of-line) )) (defun urban-jump () (when (search-forward "Top Definition" (point-max) t) (w3m-next-anchor) (recenter 0) )) (setq w3m-search-default-engine "google-en") (defun google-image-search () (interactive) (w3m-web-search "https://www.google.com/search?hl=en&site=imghp&tbm=isch&source=hp&q=%s" (get-search-string "image") )) (defun you-tube-search (&optional long) (interactive) (w3m-web-search (format "http://www.youtube.com/results?search_query=%%s%s" (if long "&filters=long&lclk=long" "")) (get-search-string (format "YouTube%s" (if long " (long)" "")) )) (enable-jump #'number-one-jump) ) (defun you-tube-search-long () (interactive) (you-tube-search t)) ; LONG (defun pirate-search () (interactive) (w3m-web-search "https://thepiratebay.se/search/%s/0/99/200" (get-search-string "Pirate Bay") )) (defun urban-dictionary-search () (interactive) (w3m-web-search "http://www.urbandictionary.com/define.php?term=%s" (get-search-string "Urban dictionary") ) (enable-jump #'urban-jump) ) (defun emacs-wiki-search () (interactive) (w3m-web-search "https://duckduckgo.com/?q=%s+site\:emacswiki.org" (get-search-string "EmacsWiki") ) (enable-jump #'emacs-wiki-jump) ) (defun wiki-search () (interactive) (w3m-web-search "https://en.wikipedia.org/w/index.php?title=%s\&printable=yes" (get-search-string "Wikipedia") )) (defun w3m-web-search (pattern search) (w3m (format pattern search) t) ) (provide 'w3m-unisearch)