
检索是开发者每日最高频的操作,查找文件、全局搜代码、跳转函数,占据编码工作近八成交互时间。然而现代编辑器分化出两条完全对立的检索设计路线:分散独立面板、一体化统一检索框架。
在Neovim生态,telescope.nvim是一体化检索的天师标杆;而高性能编辑器Zed的出现,让大批Neovim的开发者集体希望 zed 原生支持对标Telescope的统一检索能力。这条需求并非简单新增功能,而是两种编辑器底层设计哲学的碰撞。
多数新手仅把Telescope当成“更快的文件查找插件”,这个认知不够到位。它的官方定位是模块化通用检索Picker框架,核心目标是解决Vim/Neovim原生检索工具碎片化的历史痛点。
zed 这次更新受到了 vim 这种优秀设计的启发,也推出了 zed 的统一搜索入口。
那到底什么是 telescope 呢?下面就来展开说说
Telescope固定三段式弹窗布局:顶部输入筛选框、中间结果列表、右侧实时预览面板。这套设计直击传统检索最大痛点——无需打开文件,即可查看代码上下文。

框架内置数十种检索数据源,一套弹窗覆盖全开发场景,切换检索类型无需更换交互逻辑:
文件检索、全局文本模糊匹配、LSP定义/引用、Git提交与变更、快捷键清单、调试断点等全部兼容。同时依托fd、ripgrep、fzf-native等工具,实现百万行代码库无卡顿模糊匹配,输入片段即可精准定位目标,无需完整文件名或函数名。
如下图,只搜索git的话,点击搜索框右边的git的图标,只搜索文件点击文件的图标

Telescope将检索拆分为数据源、模糊排序、预览渲染、弹窗容器四大可替换组件,开发者可自定义过滤规则、新增业务专属检索源。
同时原生支持多选批量操作,可批量分栏打开文件、批量加入重构列表,跨模块统一修改代码时,效率是分散检索面板无法比拟的。
zed 最初也是采用拆分式独立检索面板,和Telescope一体化思路完美对立,也是Zed 这次增加这个新功能的根本原因。
这里也不能怪 zed,毕竟 vscode 在这方面是珠玉在前。这也是我为什么不喜欢vscode的一点原因,反观idea他们的设计有一个是叫 search everywhere, 是非常贴近telecope的风格的。
Zed 过去的套路几乎和 vscode 一样, 将检索切割为四个完全隔离的入口,无统一承载容器:
Ctrl+P:独立弹窗,带预览;Ctrl+Shift+F:缓冲区面板,无侧边实时预览,仅展示单行匹配;Ctrl+shifit+O:单独弹窗,仅检索标识符;从个人角度我觉得 zed 使用 telescope 这个词并不是很好,我更喜欢 idea 里面的叫法 search everywhere,一看就懂,不像 ts 那样绕弯子。而且 idea 还有对应的快捷键是双 shift 也是我最喜欢的快捷键之一了。

我们开发者每日检索操作上千次,长期切换多套弹窗带来的精神损失会持续累积;统一弹窗能形成固定肌肉记忆,大幅降低思考成本。
下面来看看Zed新版本的设计芳容
使用快捷键ctrl shift p,搜索text finder:search

将会跳转到下一个窗口

开始搜索

这种默认不支持预览,需要先点击preview


项目规模越大,各种各样的文件也就越多,你就越能感受到一体化检索的优势。据说zed因为这次功能的增加,让很多原来打死坚持使用vscode甚至neovim的大佬们集体转到zed上了。不少网友在 github上对这个功能赞扬不已,积累了近900个大拇指,这么多赞实属罕见,可见这个功能在社区的受欢迎程度。
Telescope证明了一体化Picker框架是适配键盘流、大型分布式项目的优质检索方案
如果你是云原生、Vim/Helix 重度使用者,或者是极度喜欢vscode的大佬们,我强烈推荐大家伙体验下zed这套统一检索带来的认知卸载和高效定位。