vim改变一个时期的最快方式是什么“。”箭头“ - >”?

问题描述:

我知道这听起来像挑剔的问题,这不是很重要,但它实际上证明是我的挫折源。vim改变一个时期的最快方式是什么“。”箭头“ - >”?

偶尔我会使用点运算符“。”。当我打算使用箭头“ - >”时,在指针类型上。为了解决这个问题,我通常需要改变2-3个点到箭头,但我似乎无法找到一种方法来做到这一点在vim中,我不需要大量的文本键盘的笔触改变。

例如,我可以这样做:

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

但是,这是一个相当大量的输入,如果有只有2-3实例。

或者,我可以用jkhl导航到各个时期,并做到:

r-a><ESC> 

但五个击键每个人似乎挺折腾使用jkhl后,发现所有的三个,还有精神上下文切换随着进入和退出插入模式这么快。

如何将点变为箭?你有没有找到一种更快的方法?

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

...等...

每个n去没有您搜索的下一个表情,每.重复使用箭头点的替换。根据需要混合并匹配ns和点。

+0

@CoryKlein这就是我正在使用's'而不是'x'。 +1 – pb2q 2012-07-10 16:12:38

+3

这可能会更有用,因为':%s /\./->/ gc' – Conner 2012-07-10 19:02:23

+0

@Conner:是的,我同意,但OP在当地只需要2-3次更改。代替整个文件最终会产生大量的误报,并且确定要应用的行范围可能太像努力工作:) – 2012-07-11 08:15:11

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

请在一审替换光标放在需要更改的点,用小号,杀死当前字符并开始插入:s->

现在使用n找到下一个匹配,并重复最后一个命令的周期:

如果您需要对点进行更具体的描述,那么您的搜索可能是:/objectName\./e,将光标留在搜索结束处,但这样更有效。也许/ob/e+9

+0

我喜欢这个想法,但它不起作用。首先,你需要搜索'\ /。',其次,当我使用'.'重复命令时,点不会被删除。我不知道为什么。我应该在'xi->'后打'',对不对? – 2012-07-10 16:00:27

+0

铢。重复只是插入,对不起 – pb2q 2012-07-10 16:02:38

可以映射例如键:

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

然后只需按该行的关键诉

+5

视觉模式通常是非常有用的(取决于你如何使用vim)。我会使用'g.'来避免阻塞vim的功能,但映射的密钥显然可以达到OP。 – 2012-07-10 16:18:28

如果你正在使用vim,你可以添加键盘映射到你的〜/ .vimrc文件,是这样的:

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

那么当你在Vim中键入“F2”,将映射的命令出现,可在编辑参数之前编辑参数。

您可以在视觉模式下选择 - >并执行"ky将其保存到寄存器k中,然后通过。并做x"kP

+0

'x“kP'实际上需要'xh”kP' – 2012-07-10 16:04:33

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

因为n.用于经常我发现它有助于映射它,我用F3

map <F3> n. 
+0

我认为这也是一个很好的方法。但是,当我搜索'/ foo \ ./ \ e'时,我的光标不会放在给定文本'foo.bar()'的时间段内,而是放在'f'上。 – 2012-07-10 16:50:31

+0

在'e'之前丢失反斜杠。我相信这是一个错误。 – 2012-07-10 16:53:46

+0

是反斜杠是一个错字。应该现在工作得更好。 '/ e'将光标放在搜索词的末尾。 更多信息请参阅':help pattern' – 2012-07-10 20:44:04