2

我知道这听起来像是一个不太重要的挑剔问题,但它实际上证明是我感到沮丧的根源。

偶尔我会使用点运算符“。” 当我打算使用箭头“->”时,在指针类型上。要修复它,我通常只需要将 2-3 个点更改为箭头,但我似乎无法在 vim 中找到一种不需要相对大量击键的方法来处理我的文本量变化。

例如,我可以这样做:

:lineNum,lineNum s/\<objectName\>\./->/g

但是,如果只有 2-3 个实例,那就是相当多的输入。

或者,我可以使用jkhl导航到每个时期,并执行以下操作:

r-a><ESC>

但是在使用找到所有三个之后,每个击键五次似乎是一种折磨jkhl,以及如此快速地进入和退出插入模式所带来的心理上下文切换。

你如何将你的点变成箭头?你找到更快的方法了吗?

4

6 回答 6

6
/\.<CR>
s-><ESC>
n.
n.

... ETC ...

eachn没有您搜索的下一个表达式,并且 each.重复用箭头替换点。根据需要混合和匹配 ns 和点。

于 2012-07-10T15:59:47.720 回答
4

您可以映射一个键,例如:

:map v :s/\./->/g^M

然后只需按该行上的键 v 。

于 2012-07-10T15:58:11.463 回答
1

如果您使用的是 vim,您可以将键盘映射添加到 ~/.vimrc 文件中,例如:

map <F2> :lineNum,lineNum s/\<objectName\>\./->/g

然后当您在 vim 中键入“F2”时,会出现映射命令,您可以在触发它之前编辑参数。

于 2012-07-10T15:59:14.910 回答
1

首先搜索点的初始实例:/\..

在第一个实例上进行替换,将光标放在需要更改的点上,使用s,这会杀死当前字符并开始插入:s->

现在用于n查找下一个匹配项,并使用句点重复上一个命令:.

如果您需要更具体地了解这些点,那么您的搜索可能是: /objectName\./e,将光标留在搜索的末尾,但这需要更多的输入。也许/ob/e+9

于 2012-07-10T15:58:07.863 回答
1

用光标在指针名称上命中*。这将找到指针的所有实例。
然后/<M-UP>\./e将检索先前的搜索,追加.并将光标放在..
现在我们的搜索词只会找到问题.s。
在第一个上用请求s-><ESC>替换并修复所有其他事件.->n.

因为n.经常使用,所以我发现映射它很有帮助,我使用F3

map <F3> n.
于 2012-07-10T16:16:36.307 回答
0

您可以在可视模式下选择 ->"ky并将其保存到寄存器 k 中,然后遍历 . 做x"kP

于 2012-07-10T15:59:33.167 回答