Sublime Text 原生不支持划词即搜,稳定方案是用构建系统调用 Python 的 urllib.parse.quote 编码选中文本并拼接百度 URL;Ctrl+B 无效主因是构建系统未启用、Python 路径错误或选区含非法字符。
Sublime Text 原生不支持“划词即搜”,所谓一键跳转百度/谷歌的功能,基本都依赖已失效的旧插件;真正稳定可用的方案,是用构建系统 + urllib.parse.quote 编码选中文本,再拼接 URL —— 它不依赖插件更新节奏,也不受 Sublime Text 4 API 移除影响。
常见错误是直接把选中文本塞进 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]))" 来编码subl 命令可能未加入 PATH,导致构建系统找不到 subl 或 python3,需先验证终端能执行这两个命令新建文件 BaiduSearch.sublime-build 放在 Packages/User/ 目录下,内容如下(适配 macOS / Windows / Linux):
{ "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 自动传入的选中文本,无需手动复制https://www.google.com/search?q= 或 https://cn.bing.com/search?q=
webbrowser.open 打不开,可替换为 open 命令:open "https://www.baidu.com/s?wd=$q"
start,但构建系统默认走 cmd,建议统一用 Python 的 webbrowser 模块更可靠不是快捷键坏了,而是构建系统未生效或路径错位。
Ctrl+Shift+P → 输入 Set Build System → 选择 BaiduSearch
Preferences → Package Settings → Build System → Settings – User 是否有冲突配置,比如禁用了 shell_cmd
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 清理格式。