【问题标题】:Find the next occurrence of a variable in vim在 vim 中查找下一次出现的变量
【发布时间】:2011-05-23 11:07:55
【问题描述】:

我想知道是否/如何让 vim 查找下一次出现的变量。假设变量的名称只是“n”,那么/n 会给我该字母的所有出现,这并不总是非常有用。我想我可以创建一个正则表达式来解决这个问题,但我想知道是否有一些我根本不知道的命令/击键;由于我所有的谷歌搜索都无济于事,我决定在这里提出一个问题。

非常感谢您的帮助!

【问题讨论】:

  • 您是否正在寻找能够识别语法并区分单词中的简单字母 n 和名称为 n 的变量的东西?
  • @kriss 这正是我正在寻找的,是的。但是,如果我能在没有语法意识的情况下获得变量/名称查找功能,我也会感到满意。

标签: search vim variables


【解决方案1】:

如果您将光标悬停在有问题的变量上,您可以按*,它将搜索下一个匹配项,或者# 将搜索上一个匹配项。

这相当于打字:

/\<n\>

\&lt; 匹配单词的开头,\&gt; 匹配单词的结尾)。唯一的区别(出于我不确定的原因)是 *# 不注意 'smartcase' 选项。

见:

:help *
:help /\<

【讨论】:

  • @Al 我不知道 * 和 # 会注意单词边界,所以非常感谢您向我指出!
  • 也看看:help pattern
  • 这当然是一个很好的功能。但不幸的是,它不仅仅是变量,因为它也可以是字符串。例如,如果您有char str[]="test"; int s = 5; printf("%s\n", str);,那么格式说明符中的“s”也将被匹配。我可以发誓,有一种无需任何外部工具的方法,但我终生无法记住它是什么,或者我是否将它与其他东西混合在一起,但它很好地提醒了单词边界。
【解决方案2】:

如果您在命令模式下按n,它将为您提供搜索的下一个匹配项。

更多细节:

  • / 将开始向前搜索
  • ? 将开始向后搜索
  • n 会给你下一个结果你正在搜索的方向
  • N 会给你以前的结果wrt你正在搜索的方向

【讨论】:

  • 不应该是N 吗? n 用于上一场比赛。
  • 如果大写锁定打开,则不会! >.>
  • 您必须在按下n 之前搜索该字符串以便下次出现? *# 转到光标下单词的下一个出现位置。
  • 尽管我喜欢n,但它不会搜索光标下单词的下一个出现。使用*
  • @HarryMoreno 但是一旦你点击了* 然后n 搜索下一个。
猜你喜欢
  • 2022-12-18
  • 1970-01-01
  • 2022-07-30
  • 1970-01-01
  • 1970-01-01
  • 2011-09-30
  • 2019-11-24
  • 2021-01-20
  • 1970-01-01
相关资源
最近更新 更多