转到第n个符号


85

如何在Vim中从左移光标到第n个符号?

我看到的解决方案之一是按0n<right-arrow>,它将移动到n + 1位置。有没有更自然的方法呢?


1
向右箭头解决方案解决了我的问题... thnx
raj_gt1

谁曾经使用<right arrow>的,而不是l在vim?
LRDPRDX

Answers:


129

管道“ |” 角色可能是您想要的:

要以正常模式转到一行的第25列,请按 25|

要在正常模式下一行显示在第37列,请按 37|

等等。。。


太好了,这就是我想要的
Nutel 2010年

4
@CamilB尝试类似的方法$3h,它将使您移至该行的末尾,然后向左移3个字符。
杰夫·克莱恩

有关更多信息,请参见vim帮助:help bar。当我发现它时,它使XD注释和取消注释变得更加容易。发现这一点之后,我不再依赖外部注释/取消注释插件,现在的代码编辑生活变得更好了:)
Avi Mehenwal

40

编辑:误读了您的问题。

您可以通过键入要输入f的符号前进到特定符号:

如果要移至第三个$,请输入:

3f$

为了倒退,请使用大写字母“ F”

F$

要先到达行尾,请使用“ $”

因此从行尾查找第三个$的击键是:

$3F$

我喜欢在使用Vim时保持这种便利:http :
//www.lagmonster.org/docs/vi.html


1
这是google的第一个结果,这就是我一直在寻找的东西,谢谢
kgwong

该运动被添加到其他的命令也一样:从当前位置到字符“E”的第二外观变化- c2te :)
VUTô

8

我不确定您是指第n个字符还是第n个出现的字符;第二个已经回答,所以我会回答第一个。

^会将您带到除空格之外的行的开头(因此,到第一个非白色列),并且|(pipe)或0(零)会将您带到第一个字符。然后l(小写L)将您带到右边;并7l会将您带到右侧的七个字符。因此,所有一起,去到第(n + 1)个字符就行了,对于n = 7, 07l


我看到您现在已经编辑了问题;l而不是向右箭头表示您将获得的最佳效果。(您熟悉hjkl导航吗?)
克里斯·摩根

我知道真正的vimmer不应该使用箭头,但是我使用其他一些不支持低级键绑定的应用程序,并且导航的唯一方法是箭头,因此为了更轻松地在它们之间进行切换,我使用箭头
Nutel

@Vetal:滚动在其他应用程序中不起作用时,我有时会感到沮丧……hjkl比箭头好得多。
克里斯·摩根

正如赫伯特·希茨(Herbert Sitz)的答案所指出的那样,|因为[count]默认值是1,所以仅转到第一个字符-实际上,它指向行中的[count]第一个字符,因此8|类似于,07l只是一个动作而不是两个动作。
hobbs 2010年

我想我应该注意角色的作用。应该以为不可能有两种方法来做同一件事。
克里斯·摩根
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.