Emacs: 封装 webjump 搜索 symbol-at-point
好的,我现在需要帮用户总结这篇文章的内容,控制在100字以内。首先,我得通读文章,抓住主要信息。 文章主要讲的是Emacs里的webjump包,用户配置了多个网站的搜索链接,比如Kagi、Wikipedia、MDN等。通过设置这些链接,用户可以在Emacs里快速调用搜索功能。此外,还结合了symbol-at-point函数,可以获取光标下的内容并直接搜索,这样在写代码或文档时非常方便。 用户还提到了如何将常用搜索条件内置到链接中,比如固定搜索GitHub或者设置图片尺寸。最后,文章还比较了webjump和其他浏览器的搜索快捷方式的相似之处,并建议使用搜索引擎的操作符来优化搜索。 总结的时候要简洁明了,突出webjump的功能和优势。控制在100字以内的话,可能需要省略一些细节,比如具体的配置代码和例子。 现在组织语言:Emacs内置包webjump允许用户配置常用网站的快速搜索功能。通过设置特定的查询参数和结合symbol-at-point函数,用户可以快速获取光标下的内容并进行多网站搜索。这种方式提升了工作效率,并支持自定义高级搜索条件。 </think> Emacs内置包webjump允许用户配置常用网站的快速搜索功能。通过设置特定的查询参数和结合symbol-at-point函数,用户可以快速获取光标下的内容并进行多网站搜索。这种方式提升了工作效率,并支持自定义高级搜索条件。 2026-1-26 03:54:0 Author: taxodium.ink(查看原文) 阅读量:1 收藏

webjump 是 Emacs 里内置的一个包,你可以配置想要搜索的网站,然后通过 webjump 选择搜索。

例如这是我设置的网站:

(setq webjump-sites '(("Kagi" . [simple-query "kagi.com" "kagi.com/search?q=" ""])
                      ("Kagi Translate" . [simple-query "translate.kagi.com" "translate.kagi.com/?from=auto&to=zh_cn&text=" ""])
                      ("Wikipedia" . [simple-query "wikipedia.org" "wikipedia.org/wiki/" ""])
                      ("Kagi(site:github.com)" . [simple-query "kagi.com" "kagi.com/search?q=site:github.com+" ""])
                      ("Album" . [simple-query "kagi.com" "kagi.com/images?q=" "&size=large"])
                      ("MDN" . [simple-query "developer.mozilla.org" "developer.mozilla.org/en-US/search?q=" ""])
                      ("Haici" . [simple-query "dict.cn" "dict.cn/search?q=" ""])))

当我调用 webjump 时,它会让我从上面的选项里选一个,然后输入搜索关键字,之后就会跳转到对应的网站搜索。

可以将一些比较高频的搜索条件内置在搜索链接里。如果经常搜索 GitHub 上的内容,可以加上 site:github.com ,使得总是搜索 github.com 的内容;或者也可以直接用 GitHub 本身的搜索 https://github.com/search?q=%s

symbol-at-point 也是 Emacs 里内置的一个函数,可以获取当前指针下的内容。

结合两者,我写了一个函数,获取指针下的内容,然后调用 webjump 去搜索,这样在 Emacs 里碰到什么我想要查询的,就可以快速调用常用的网站进行搜索。例如写页面的时候快速去 MDN 查询一些 API 的使用。

代码
(use-package webjump
  :bind (("C-M-?" . spike-leung/webjump-symbol-at-point))
  :config
  (setq webjump-sites '(("Kagi" . [simple-query "kagi.com" "kagi.com/search?q=" ""])
                        ("Kagi Translate" . [simple-query "translate.kagi.com" "translate.kagi.com/?from=auto&to=zh_cn&text=" ""])
                        ("Wikipedia" . [simple-query "wikipedia.org" "wikipedia.org/wiki/" ""])
                        ("Kagi(site:github.com)" . [simple-query "kagi.com" "kagi.com/search?q=site:github.com+" ""])
                        ("Album" . [simple-query "kagi.com" "kagi.com/images?q=" "&size=large"])
                        ("MDN" . [simple-query "developer.mozilla.org" "developer.mozilla.org/en-US/search?q=" ""])
                        ("Haici" . [simple-query "dict.cn" "dict.cn/search?q=" ""])))
  (defun spike-leung/webjump-symbol-at-point ()
    "获取光标下的 symbol 并通过 webjump 搜索。"
    (interactive)
    (let* ((completion-ignore-case t)
           (query (if (use-region-p)
                      (buffer-substring-no-properties (region-beginning) (region-end))
                    (thing-at-point 'symbol t)))
           ;; (query (read-string (format "Webjump search (%s): " (or content ""))
           ;;                     nil nil content))
           (item (assoc-string
                  (completing-read "WebJump to site: " webjump-sites nil t)
                  webjump-sites t))
           (name (car item))
           (expr (cdr item))
           (query-prefix (aref expr 2))
           (query-suffix (aref expr 3))
           (fun (if webjump-use-internal-browser
                    (apply-partially #'browse-url-with-browser-kind 'internal)
                  #'browse-url)))
      (funcall fun (webjump-url-fix
                    (cond ((concat query-prefix (webjump-url-encode query) query-suffix))
                          (t (error "WebJump URL expression for \"%s\" invalid"
                                    name))))))))

Emacs China 上的相关讨论


webjump 和浏览器或者搜索引擎中的 Search Shortcuts 差不多, 可以保存常用的搜索条件便于快速搜索。

例如我经常需要从 Kagi 找专辑封面的图片,而且希望图片尺寸尽可能大。

我平常的操作是:

  1. 触发搜索栏
  2. 输入关键字搜索
  3. 切换到图片搜索
  4. 设置尺寸为 large 进行过滤

通过 Search Shortcuts,我设置了 https://kagi.com/images?q=%s&size=large ,并绑定 @a

我的操作就变成:

  1. 触发搜索栏
  2. 输入 @a 快捷键触发 Search Shortcuts,输入关键字搜索,结束

可以了解一下搜索引擎的搜索操作符,例如这是 Kagi Search Operators

  • site: 可以搜索指定域名
  • filetype: 可以搜索指定的文件类型

然后将平时频繁使用的一些搜索条件保存到 Search Shortcuts,这样下次使用就会方便一些。

Webmentions (加载中...)

如果你想回应这篇文章,你可以在你的文章中链接这篇文章,然后在下面输入你的文章的 URL 并提交。你的回应随后会显示在此页面上(如果是垃圾信息我会屏蔽)。如果要更新或删除你的回应,请更新或删除你的文章,然后再次输入该文章的 URL 并提交。(了解有关 Webmention 的更多信息。)


    创建于: 2026-01-26 Mon 11:54

    修改于: 2026-01-26 Mon 13:05

    许可证: 署名—非商业性使用—相同方式共享 4.0

    支持我: 用你喜欢的方式


    文章来源: https://taxodium.ink/emacs-use-webjump-to-search-symbol-at-point.html
    如有侵权请联系:admin#unsafe.sh