在一个大缓冲区中,我想滚动到模式pattern的最后一次出现。
如果我在第一次出现的位置,那么很容易搜索模式
如果我处于一系列的出现位置中间... 是否有更好的跳转方式?
如果我在第一次出现的位置,那么很容易搜索模式
/
,然后使用n
的相反方向移动到下一个出现位置,再使用N
到达最后一次出现。如果我处于一系列的出现位置中间... 是否有更好的跳转方式?
/
,然后使用n
的相反方向移动到下一个出现位置,再使用N
到达最后一次出现。找到最后一个出现位置的简单方法是跳转到末尾并向后搜索:
G?foo<CR>
实际上,如果你已经在搜索某些内容,有一种更简单的方法。只要直接跳到末尾,反向搜索你刚才正在寻找的东西:
GN
就这么简单。
编辑:如果你的搜索出现在文本的最后一行,那么GN
会跳过它到倒数第二次出现的地方。使用ggN
可以解决这个问题。(而gg?foo<CR>
出于类似的原因也是如此。)
:1?SEARCH_PHRASE
:set wrapscan
,我更喜欢使用 1G?search_pattern
,因为它不依赖于 vim。 - Kajukenbo:vim foo % | clast
type clast
-> -bash: type: clast: 未找到命令
- Robottinosinoclast
是一个应该在 $PATH 上的程序?如果是这样,我尝试使用 type
来定位它(就像 which
),但它给了我那个错误信息。clast
是什么? - Robottinosino:clast
是一个 Vim 命令,用于跳转到快速修复列表中的最后一项。请阅读:h :clast
。 - romainl另一个解决方案是:
G/\(.\{-}\zs\(foo\)\)\{1,}<CR>
ggN
,即使需要按一个额外的键。因为GN
只有在最后一个匹配项不在文件的最后一行时才起作用。如果匹配项在最后一行,使用N
会跳过它。 - Kent