sublime text无需插件即可实现百度搜索,只需配置open_url_command并修改快捷键绑定为含${encoded_selection}的百度url模板。

选中文本后直接调用浏览器搜索,不需要插件
Sublime Text 本身不内置百度搜索功能,但完全不用装插件就能实现——靠的是 sublime-settings 里的 open_url_command 配置 + 系统默认浏览器 + URL 编码规则。
关键在于:选中文字 → 右键 → “Search on Google”(或类似选项),这个菜单项是 Sublime 自带的,只是默认绑定的是 Google,改成百度只需改一个 URL 模板。
- 打开
Preferences → Browser Packages…,进入Packages/User/目录 - 新建文件
Default (Windows).sublime-keymap(Windows)或对应系统名,内容填:
[
{
"keys": ["ctrl+alt+b"],
"command": "open_url",
"args": {
"url": "https://www.baidu.com/s?wd=${encoded_selection}"
}
}
]
注意:${encoded_selection} 会自动做 URL 编码,中文、空格、标点都安全;ctrl+alt+b 可换成你习惯的快捷键。
为什么装了“SideBarEnhancements”或“QuickSearch”还搜不了百度
很多用户装了插件却没效果,根本原因是:这些插件的搜索命令默认只响应右键菜单里的特定上下文,而“选中文本后右键”触发的其实是 Sublime 原生的 open_url 命令,不是插件自己的命令。
- “SideBarEnhancements” 的搜索只对文件/文件夹路径生效,对编辑区选中文本无效
- “QuickSearch” 类插件大多只提供内部符号/文件搜索,不对接外部搜索引擎
- 真正能扩展搜索行为的插件是
GoogleSearch或SearchInBrowsers,但它们仍要手动配置百度域名和编码方式
换句话说:插件不是万能中转站,得看它监听的是哪个事件、暴露的是哪个命令。
中文乱码、空格被截断、搜索词不完整?检查 URL 编码逻辑
如果粘贴到浏览器地址栏里看到 %E4%BD%A0%E5%A5%BD+ 后面缺字,或出现 undefined,说明变量没被正确展开或编码失败。
- 确保用的是
${encoded_selection},不是${selection}(后者不编码,空格变+,中文直接崩) - 不要在 URL 里手动拼接
encodeURIComponent()—— Sublime 不支持 JS 函数调用 - 如果选中内容含换行符,
${encoded_selection}会把它转成%0A,百度能识别,但结果可能偏移;建议提前删掉换行再搜 - Mac/Linux 用户注意:快捷键文件名要对应系统,比如 Mac 是
Default (OSX).sublime-keymap
想支持多个搜索引擎一键切换?别堆快捷键,用命令面板统一入口
为百度、Google、GitHub、Stack Overflow 各配一个快捷键,很快就会记混。更可持续的做法是注册一个自定义命令,用 ctrl+shift+p 调出命令面板选择目标引擎。
- 在
Packages/User/下新建search_engines.py - 写一个继承
sublime_plugin.TextCommand的类,run()方法里根据参数拼不同 URL - 再在
Default.sublime-commands里注册几条命令,例如:
[
{ "caption": "Search: Baidu", "command": "search_engine", "args": {"engine": "baidu"} },
{ "caption": "Search: Google", "command": "search_engine", "args": {"engine": "google"} }
]
这样既干净,又避免快捷键冲突;而且所有逻辑集中在一处,改域名、加新引擎都不用动 keymap 文件。
真正的难点不在怎么跳转,而在怎么让选中文本“原样、可预测、可复用”地进 URL——其它都是包装。










