Rokcso's Blog (柯枝蕤叶)

代码编辑器中的文本操作技巧

要在代码编辑器里面实现光标飞舞的超高编码效率,除了使用 Vim 之外,熟练文本操作也很关键。

最近开始使用 Zed 作为我的主力代码编辑器,在 Zed 官网发现了一篇非常不错的文章(Text Manipulation Kung Fu for the Aspiring Black Belt)介绍如何修炼自己的文本操作功夫,非常不错,学习并写下了这篇博客作为记录。

原文开篇第一句话很有趣:

在软件开发领域,文本编辑器不仅是工具,更是程序员的延伸。正如武术家精准优雅地舞动长剑,程序员驾驭着文本编辑器,以深思熟虑的意图剖析文本行。

在代码编辑器中的所有文本操作本质上都是在执行编辑器命令面板中提供的命令行,一般使用 Shift + Cmd + P 即可打开命令面板,然后搜索相关命令回车执行即可,但是这种方式效率极低。

代码编辑器中的文本操作命令
代码编辑器中的文本操作命令

通过快捷键来执行这些命令可以大大提高效率,但是记住大量的快捷键也是很困难的事情,更好的方式是只熟练使用一些最基础的快捷键(就像 Cmd + C 一样),复杂的高级操作还是借助命令面板来执行。

这些最基础的快捷键就是本文想重点介绍的文本操作技巧,并且不仅限于 Zed,几乎所有代码编辑器都支持。

光标导航

最基础的做法是通过 Up/Down/Left/Right 方向键移动光标进行导航,配合修饰符则可以实现更高效的移动。

Cmd

Windows 对应 Ctrl 键。

使用 Cmd 配合 Up/Down/Left/Right 方向键可以实现跳转到编辑器的某个边缘,比如:

Option

Windows 对应 Alt 键。

使用 Option 配合 Left/Right 方向键可以实现以「单词」为边界的跳转(中文不太适用),比如:

使用 Option 配合 Up/Down 方向键可以实现对光标所在行的上下移动。

使用 Option + Ctrl 配合 Left/Right 方向键还可以实现在子单词之间的跳转,尤其适合 camelCase 和 snake_case 这样的变量中子单词之间的跳转:

文本选取

Shift

将上述的光标导航操作配合 Shift 键,可以实现文本选取,比如:

当光标选中某个内容后,使用 Shift + Cmd + L 可以快速选中当前文件中所有相同的内容,这通常用于批量选中同一变量。当批量选中一批变量之后使用 ESC 可取消选中,但是光标还同时存在于多个变量的相同位置(适合批量编辑变量),再次 ESC 后光标可回到起点位置。

按住 Shift + Option 后在列方向上拖拽光标,可以实现列方向上的选取。

#skill