Sublime Text 实现划词搜索需用构建系统配合 urllib.parse.quote 编码选中文本,避免空格和中文导致 URL 解析失败;新建 BaiduSearch.sublime-build 文件配置 shell_cmd 并启用该构建系统即可,换搜索引擎只需修改 URL 前缀。

Sublime Text 原生不支持“划词即搜”,所谓一键跳转 Google/Bing 的功能,基本都依赖已失效的旧插件;真正稳定可用的方案,是用构建系统 + urllib.parse.quote 编码选中文本,再拼接 URL —— 它不依赖插件更新节奏,也不受 Sublime Text 4 API 移除影响。
为什么 Ctrl+B 拼出的百度链接搜不到关键词
常见错误是直接把选中文本塞进 URL,比如 https://www.baidu.com/s?wd=sublime plugin development,空格和中文没编码,浏览器会截断或解析失败。
-
urllib.parse.quote必须参与流程:它把空格转成+,中文转成%E4%B8%96%E7%95%8C等合法 URL 字符 - 构建系统里不能写死字符串,得用
$SELECTION(Sublime 提供的变量)传入选区内容 - Windows 用户若用
python3报错,要换成python,并确认系统 PATH 中有 Python 可执行文件
如何新建一个可靠可用的百度搜索构建系统
菜单栏 → Tools → Build System → New Build System…,粘贴以下内容并保存为 BaiduSearch.sublime-build:
{
"shell_cmd": "python -c \"import sys, urllib.parse; print('https://www.baidu.com/s?wd=' + urllib.parse.quote(sys.argv[1]))\" \"$SELECTION\"",
"selector": "text.plain",
"file_regex": "",
"working_dir": "$file_path"
}
- 保存后务必在 Tools → Build System 中手动选中
BaiduSearch,右下角状态栏要显示这个名字,否则Ctrl+B不生效 -
selector设为text.plain是为了防止在代码文件中误触发;如需全场景可用,可删掉这行或改成source - 输出结果默认显示在 Sublime 底部面板,复制即可粘贴到浏览器地址栏 —— 它不自动打开,但绝对可控、无副作用
换 Google / GitHub / Stack Overflow 只需改 URL 前缀
构建系统逻辑不变,只替换 https://www.baidu.com/s?wd= 这一段:
- Google:
https://www.google.com/search?q= - Bing:
https://www.bing.com/search?q= - GitHub code 搜索:
https://github.com/search?q=(注意 URL 长度限制,过长选区会被截断) - Stack Overflow:
https://stackoverflow.com/search?q=
所有情况都复用 urllib.parse.quote(sys.argv[1]),编码逻辑不重复写,避免漏掉 &、=、引号等特殊字符。
别指望它理解上下文——选中 "fetch" 就真会把双引号一起编码;也别试图让它自动识别变量名或跳过注释。它只是个文本管道,简单、透明、不藏 bug。真正的复杂需求,比如语义化搜索或文档跳转,得靠 Dash/Zael + DashDoc 这类专用链路,而不是硬塞进搜索框。


















