如何选择多个不连续行的不同部分并用相同/不同的文本替换它们?
示例:假设我的缓冲区看起来像这样 -
Roses are reed,
Violets aree blue,
Sugaar is sweet,
And so are you,
我希望将第3行('reed')改为'红色,黄色和绿色',在第2行'aree'改为'are',在第3行'Sugaar'改为'Sugar and molasses'在第四行'你','你'。
说我的光标位于'Roses'的'R'。我想立刻选择所有这四个错误,而不是其他错误。在我完成选择之后,我希望能够通过按某个键(例如 Ctrl + j )移动到'reed',然后在更改之后我希望能够按某个键(例如 Ctrl + j )并移动下一个视觉选择“ise”。
有没有插件可以做到这一点?
答案 0 :(得分:1)
有多个游标插件,它们试图在Vim的其他编辑器中创建并行编辑功能(这很困难)。如果我理解你的用例是正确的,那么这在这里没有用,因为所有地方都会以相同的方式进行编辑(所以reed
,areee
等等都将被替换为相同的red
)。
相反,你似乎要求的是一种搜索所有错误拼写单词的方法,然后逐个编辑它们。您可以使用正则表达式 branches :
进行标准搜索/reed\|areee\|Sugaar\|you,/
完成后,您只需按n
分机即可转到下一场比赛。请注意,分支必须是唯一的(因此我搜索了you,
而不是简单地,
)。添加单词边界(\<reed\>
而不是reed
)也是一个好主意。
<Leader>+
)键映射的搜索分支。 (但是,如果您已经说过,为什么不立即纠正?):cnext
)快速转到每个。该插件还提供了直接从quickfix列表修复拼写错误的映射。