gpt4 book ai didi

Vim - 更改并包括搜索的字符串

转载 作者:行者123 更新时间:2023-12-04 22:12:08 27 4
gpt4 key购买 nike

假设我有以下代码:

bool myCopiedFunc() {
Some code that I've written;
The cursor is on this line; <<<<<<<<<<<<<<
if (something) {
bool aValue;
some of this is inside braces;
return aValue;
}
if (somethingElse) {
this is also inside braces;
bool anotherValue;
{
more braces;
}
return anotherValue;
}
return false;
}

我决定要重写函数的其余部分,从光标所在的行开始。

要在同一行最多替换一个字符,我可以使用 ct<char>例如 ct;要在同一行替换最多并包含一个字符,我可以使用 cf<char>例如 cf;要在多行中最多替换一个字符串,我可以使用 c/<string>例如 c/return false 要在多行中最多替换并包含一个字符串,我可以使用... ??例如??

我不能只搜索分号,因为在光标和函数结尾之间有未知数量的分号,并且计算它们会很慢。
我不能只搜索右大括号,因为光标和函数结尾之间有几个块,计算所有右大括号会很慢。
在代码高亮的帮助下,我可以很容易地看到我可以搜索到的唯一字符串是 return false .

是否有一个优雅的解决方案来删除或更改并包含字符串模式?

我已经看过几个相关的问题。

Make Vim treat forward search as "up to and including"有一个公认的答案,但没有回答我的问题。

就我而言,我决定删除最多搜索字符串,然后单独删除最多分号,但感觉效率低下,而且就像只是伸手去拿鼠标会更快。 #第一世界问题

最佳答案

To replace up to and including a string across multiple lines, I can use... ?? e.g. ??


/支持偏移量。

在您的情况下,您将需要 e偏移量,即 c/foo/e .

您可能想了解有关“搜索偏移”的更多详细信息:
:h offset

关于Vim - 更改并包括搜索的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59356691/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com