bey*_*kay 3 vim neovim coc.nvim
通常,如果我有一个像points.length - 1and 这样的代码表达式,我想用一个变量替换它(例如,命名,target_idx那么我将定义该变量:
int target_idx = points.length - 1;
Run Code Online (Sandbox Code Playgroud)
但现在我想用 替换所有points.length - 1实例target_idx。我知道我可以这样做:%s/points.length - 1/target_idx/g,但我对我的正则表达式不太有信心,并且不想错误地替换points.length - 11或points+length - 1错误地替换。(我也知道非常神奇的搜索,但对它考虑/不考虑特殊字符的所有微妙之处也不是很有信心)
所以我想要的是能够搜索与points.length - 1via匹配的实例/points.length - 1,然后使用 遍历搜索结果n,然后将文本替换为target_idx。
但由于搜索的文本可能包含空格或其他字符,因此我不能简单地更改为单词的末尾,cE因为这只会points.length在我的示例中发生变化。
是否存在到达搜索文本末尾的文本动作?
这样我就可以走了
nc<special text motion here>target_idx我正在使用安装了 CoC 的 neovim,因此我对插件或语言服务器替换的更深入的想法持开放态度,但这感觉应该是一个我只是不知道的简单文本动作。
我想你可以去gn(:help gn了解详情)。(gN向后搜索。)
另一方面,您可以给出:s/\xe2\x80\xa6/\xe2\x80\xa6/标志c,以便它要求您确认每个替换(:help :s_flags了解详细信息)。
此外,您很可能可以利用.一次击键完成步骤 2 和 3(:help .了解详细信息)。在你的具体例子中,你第一次会这样做,
/points\\.length - 1Entercf1target_idxEscape
然后继续通过 进行下一场比赛n并通过 进行更改.。
\n:s我上面提到的带有标志的解决方案更快c,因为您只需按y/n而不是n/ n.。