【问题标题】:Go to n-th symbol in line转到行中的第 n 个符号
【发布时间】:2010-12-17 01:27:30
【问题描述】:

Vim中如何将光标移动到左起第n个符号?

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

【问题讨论】:

  • 右箭头解决方案解决了我的问题...thnx
  • 谁曾在 vim 中使用 <right arrow> 而不是 l
  • OP 提出的解决方案很简单 1. 到行首 (​​0) 2. 运行“向右移动”命令 n 次(例如,3l 将向右移动 3次)

标签: vim


【解决方案1】:

管道'|'角色可能是你想要的:

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

要在正常模式下转到一行中的第 37 列,请按 37|

等等。 . .

【讨论】:

  • 太好了,这就是我要找的东西
  • @CamilB 试试$3h 之类的方法,它会将您移动到行尾,然后向左移动 3 个字符。
  • 更多信息请参见 vim help :help bar。当我发现它使评论和取消评论变得如此容易XD发现这一点后,我不再依赖外部评论/取消评论插件,现在代码编辑生活好多了:)
【解决方案2】:

编辑:误读了您的问题。

您可以通过键入 f 后跟相关符号来前进到特定符号:

如果你想移动到第三个$,你可以输入:

3f$

为了倒退,你使用大写“F”

F$

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

因此,从行尾开始查找第三个 $ 的按键是:

$3F$

我喜欢在使用 Vim 时将这样的东西放在手边:
http://www.lagmonster.org/docs/vi.html

【讨论】:

  • 这是谷歌的第一个结果,这就是我要找的,谢谢
  • 此动作也可以添加到其他命令中,例如:从当前位置更改为字符“e”的第二次出现 - c2te :)
【解决方案3】:

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

^ 将带您到不包括空格的行的开头(因此到第一个非白色列),|(管道)或0(零)将带您到第一个字符。然后l(小写L)会带你到右边; 7l 会将您带到右边的七个字符。所以一起,转到行中的第 (n+1) 个字符,对于 n=7,07l

【讨论】:

  • 我看到你现在已经编辑了问题; l 而不是右箭头是你能得到的最好的。 (你熟悉hjkl导航吗?)
  • 我知道真正的 vimer 不应该使用箭头,但我使用其他一些不支持低级键绑定的应用程序,并且导航的唯一方法是箭头,以便更容易在它们之间切换我用箭头
  • @Vetal:当滚动在其他应用程序中不起作用时,我偶尔会感到沮丧...... hjkl 比箭头好得多。
  • 正如 Herbert Sitz 的回答所指出的,| 仅指向第一个字符,因为 [count] 默认为 1 - 它实际上指向行中的 [count]th 字符,所以 @ 987654331@ 与 07l 类似,只是它是一个动作而不是两个动作。
  • 我觉得应该注意角色的行为。应该认为不可能有两种方法来做同一件事。
猜你喜欢
  • 2018-12-21
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
  • 2013-02-21
  • 2013-12-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多