Zed 不为人知的新魔法:transpose

发布时间:2026/9/30 2:39:05
Zed 不为人知的新魔法:transpose 不知道还有多少老程序员记得Emacs里面那个不起眼的小快捷键CtrlT。在用Emacs敲代码的年代经常手滑打错字母顺序。比如本来想敲hello手快打成了helol光标落在o和l中间。换做普通编辑器你只能按退格删掉重新输入一遍。而Emacs只需要轻轻按下CtrlT光标左右两边的字符瞬间完成互换错误直接修复。这个功能名字就叫 transpose‑chars交换相邻字符。这是一个很小、但是老Emacs用户用得爱不释手的小魔法。可惜后来VS Code并没有原生实现它。很多习惯这套操作的开发者只能去找第三方插件、自己写脚本自定义命令勉强还原这个体验。谁也没想到这个来自上古编辑器的小特性在Zed的早期开发阶段还上演了一段有意思的小故事。zed再2022年的时候增加了Editor::transpose并且直接把默认快捷键绑定为Ctrl‑T。 这个功能刚好可以拿来当做创始人Nathan Sobo开发者体验分享会的演示素材。也就是说这个功能一方面本身就是团队想要补齐的编辑器能力另一方面开发赶在演讲之前完成合并现场就可以演示Zed快速迭代新增编辑器底层能力的过程。并不是专门为演讲临时写的玩具Demo这个特性本身是正经的需求只是刚好赶上了技术分享一举两得。别看只是交换两个字符背后其实也体现出Zed的设计思路。Zed从诞生之初就一直在吸收Emacs那一套高效的键盘操作理念鼓励开发者尽量少碰鼠标手始终留在键盘上完成编辑。这里顺便也能看出编辑器之间的快捷键冲突同样是CtrlT。在VS Code中这个快捷键是跳转搜索符号移植到Zed里面它变成交换光标两侧字符。同样一组按键在两款编辑器里干着完全不一样的活。这件事也经常让来回切换编辑器的开发者叫苦不迭。但是再后来的zed版本中还是去掉了这个快捷键和vscode保持一样使用ctrl T来跳转符号。时至今日transpose交换字符依旧是一个非常冷门的编辑功能。大部分普通开发者甚至从来没有用过。但是对于重度键盘流选手来说手滑打反字母的时候不用删除重打一键交换这种细微爽感恰恰就是编辑器开发者体验的魅力所在。一个小小的快捷键从Emacs一路跨越岁月来到现代Rust写就的Zed编辑器当中继续发光。如果你需要我还可以帮你再加结尾提问适合CSDN评论引流提问平时写代码的时候你会经常手敲反相邻字母吗你希望VS Code官方原生补上transpose交换字符吗可以直接追加到文末