gpt4 book ai didi

c++ - 如何在访问 vim 中的运算符 [] 访问时转换 vector

转载 作者:行者123 更新时间:2023-11-30 01:44:07 25 4
gpt4 key购买 nike

假设我要转换

var.at(i*w+j) = something;

进入

var[i*w+j] = something;

在 vim 中输入的正确命令是什么?我试过了

:%s/\.at\(.*\)/[\1]/g

结果是

var[(i*w+j) = something;]

有效,但如果可以删除括号会更好。

编辑:显示正确的结果尝试

最佳答案

使用递归宏:

qqqqq/\.at(<CR>%"adi)F.c%[<Esc>"apa]<Esc>@qq@q

解释:

qq                                                   record macro `q`
q end empty macro
qq record macro `q`
/\.at(<CR> search for `.at(`
% go to the matching closing `)`
"adi) delete inside the parenthesis into register `a`
F. go back to the previous `.`
c% change what’s in the matching parenthesis
[<Esc> with `[` and leave insert mode
"ap paste what’s in register `a`
a]<Esc> append `]` and leave insert mode
@q call the (currently empty) `q` macro recursively
q end macro
@q call the (now non-empty) macro `q`

这也能正确处理 var.at(foo(bar, baz)) = something; 之类的东西。

关于c++ - 如何在访问 vim 中的运算符 [] 访问时转换 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36801658/

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