07 字符定位与 Search:快速抵达下一个目标
当目标就在当前行的某个字符附近时,f 和 t 通常比连续按 l 更直接;当目标出现在别处时,Search
让你先到达目标,再执行熟悉的 Operator 或 Text Object。
当前行:f 与 t
| 命令 | 落点 |
|---|---|
f{char} | 跳到右侧目标字符上。 |
F{char} | 跳到左侧目标字符上。 |
t{char} | 跳到右侧目标字符前。 |
T{char} | 跳到左侧目标字符后。 |
; / , | 重复上一次 f、t、F、T / 反向重复。 |
Before — Normal Mode
const total = left + right;
^
Keys
f+
After — Normal Mode
const total = left + right;
^
f+ 落在 + 上;t+ 会停在 + 前一个字符。这个差异在和 Operator 组合时很重要。
df+
读作“删除到 +,并包含 +”。若只想删除到 + 前,尝试 dt+。
配对符号:%
% 会跳到当前或右侧配对项的匹配位置,基础情况下适合括号、方括号和花括号。它可以和 Operator 组合,
例如 d%。插件可能扩展 % 的匹配规则;本教程只承诺基础配对语义。
Search 是跨行导航
| 命令 | 作用 |
|---|---|
/pattern | 向后搜索。 |
?pattern | 向前搜索。 |
n / N | 同方向 / 反方向重复最近搜索。 |
* / # | 向后 / 向前搜索光标附近的完整单词。 |
Keys
/profile<Enter>
找到目标后,你不需要临时换一套编辑方式:仍然可以使用 ciw、di(、d$ 等已经学过的组合。
练习
const user = getUser();
const profile = user.profile;
const displayName = profile.name;
- 从第一行快速到达第二行的
profile。 - 在第三行定位到
.,比较f.与t.。 - 搜索
profile,用n和N在两处之间往返。 - 在一个括号或方括号上尝试
%。
本章必须记住
f/t 描述当前行的精确目标。
;/, 重复字符定位。
Search 是先抵达目标、再复用编辑语言的导航能力。
暂时不用记
暂时不用记复杂正则、替换命令和搜索偏移。先让普通搜索成为导航习惯。
评论