Sublime Text 原生不支持划词即搜,稳定方案是用构建系统调用 Python 的 urllib.parse.quote 编码选中文本并拼接百度 URL;Ctrl+B 无效主因是构建系统未启用、Python 路径错误或选区含非法字符。

Sublime Text 原生不支持“划词即搜”,所谓一键跳转百度/谷歌的功能,基本都依赖已失效的旧插件;真正稳定可用的方案,是用构建系统 + urllib.parse.quote 编码选中文本,再拼接 URL —— 它不依赖插件更新节奏,也不受 Sublime Text 4 API 移除影响。
为什么 Ctrl+B 拼出的百度链接搜不到关键词
常见错误是直接把选中文本塞进 URL,比如 https://www.baidu.com/s?wd=sublime plugin development,空格和中文没做 URL 编码,浏览器会截断或解析失败。正确做法必须用 Python 的 urllib.parse.quote 处理选区内容。
- 选中
sublime 插件开发后,未编码会导致 URL 变成wd=sublime%20%E6%8F%92%E4%BB%B6%E5%BC%80%E5%8F%91才合法,否则百度只收到wd=sublime - 构建系统里写
shell_cmd时,必须调用python3 -c "import urllib.parse,sys; print(urllib.parse.quote(sys.argv[1]))"来编码 - Windows 用户注意:
subl命令可能未加入 PATH,导致构建系统找不到subl或python3,需先验证终端能执行这两个命令
如何配置 BaiduSearch.sublime-build 实现 Ctrl+B 快速搜索
新建文件 BaiduSearch.sublime-build 放在 Packages/User/ 目录下,内容如下(适配 macOS / Windows / Linux):
调用百度PaddleOCR‑VL大模型API,支持PDF、Word、PPT、图片等多格式文档解析,精准识别印刷体、手写体、表格、公式、图表、印章等复杂元素,支持100+语言,可处理不规则布局和跨页长文档。触发词:文档解析、VLM解析、大模型OCR、PaddleOCR、多模态文档、手写识别、公式识别、复杂版面。
{
"shell_cmd": "python3 -c \"import urllib.parse,sys,webbrowser; q=urllib.parse.quote(sys.argv[1]); webbrowser.open('https://www.baidu.com/s?wd=' + q)\" \"$1\"",
"selector": "text",
"working_dir": "$file_path"
}
-
$1是 Sublime 自动传入的选中文本,无需手动复制 - 换搜索引擎只需改 URL 前缀:
https://www.google.com/search?q=或https://cn.bing.com/search?q= - macOS 上若提示
webbrowser.open打不开,可替换为open命令:open \"https://www.baidu.com/s?wd=$q\" - Windows PowerShell 下需用
start,但构建系统默认走 cmd,建议统一用 Python 的webbrowser模块更可靠
Ctrl+B 没反应?检查这三件事
不是快捷键坏了,而是构建系统未生效或路径错位。
- 确认构建系统已启用:选中文本后,按
Ctrl+Shift+P→ 输入Set Build System→ 选择BaiduSearch - 检查
Preferences → Package Settings → Build System → Settings – User是否有冲突配置,比如禁用了shell_cmd - 打开 Console(
Ctrl+`),执行view.run_command("build"),看是否有报错,比如No module named 'urllib'(说明 Python 版本不对,需指定python3而非python)
最易被忽略的是:构建系统不会自动识别新创建的 .sublime-build 文件,必须重启 Sublime 或手动触发一次 Set Build System 刷新缓存;另外,选区含换行符或不可见字符(如零宽空格)时,urllib.parse.quote 会编码失败,建议先用 Ctrl+Shift+P → Convert Indentation to Spaces 清理格式。


















