比如我想把前三个 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. 宏 |
6
pluvet OP multi cursor 不错,不过就得额外装插件了
|
7
SmallZheng 2022-04-19 18:26:36 +08:00
搜索,点重复操作。 循环.
|
8
ynyounuo 2022-04-19 18:48:13 +08:00
:/1/|s//weight
3@: |
9
ynyounuo 2022-04-19 18:48:31 +08:00
*2@:
|
10
DrakeXiang 2022-04-20 12:18:01 +08:00
之前查类似的问题看到的就是搜索替换了
|