
比如我想把前三个 1 替换成 weight,在 vscode ,我会先选中第一个,然后按两次 Ctlr+D 在下一个光标重复选中,然后输入 weight 批量编辑。使用 VIM 如何操作?
[1, 0, 0, 0, 0] [0, 1, 0, 0, 0] [0, 0, 1, 0, 0] [0, 0, 0, 0, 1] [1, 0, 0, 1, 0]
1 PyTx 2022-04-19 17:45:45 +08:00 试下 ctrl +v ,方向键往下选择,shift + i ,更改第一行,esc+w 保存 |
2 lululau 2022-04-19 17:46:26 +08:00 搜 vim multi cursor |
3 975779964 2022-04-19 17:49:31 +08:00 f1sweight<Esc>;.;. 解释,f1 找到 当前行第一个 1 的字符 s 删除当前字符并进入编辑模式 然后 输入 weight esc 退出 编辑模式 ; 查找当前行 下一个 1 字符 . 重复上一个编辑模式的操作 ; 查找当前行 下一个 1 字符 . 重复上一个编辑模式的操作 我只会这种笨办法 …… |
4 pluvet OP @PyTx 万一只有一行呢?而且即便分行,要更改的也不在同一列。希望有一个比较通用的办法。 目前自己找出一个方法,但比较繁琐,耗时增加一个数量级: 1. 首先,按 v 进入 Visual 模式 2. 按 `iw` 选中当前词 3. 按 `*` 寻找相同词,光标会跳到下一个词 4. 按 `shift+n`,回到上一个词 5. 退出 Visual 模式 6. 按 ciw 替换光标下的词为新词,按 esc 退出编辑 7. 按 yw 复制光标下的新词 8. 按 `gn` 跳到下一个词 9. 按 `viw` 选中当前词 10. 按 `p` 覆盖 |
5 xlcoder166 2022-04-19 17:56:32 +08:00 基于数据量和数据格式有: 1. 2 楼的 vim multi cursor 2. 3 楼的 直接操作 3. 选择性替换 4. 宏 |