如何找到与 ex 最后匹配的行?

如何找到与 ex 最后匹配的行?

ex命令$导航至第一的最后一行的字符。因此,在进行向后搜索时,它会跳过当前所在的行。如何使用 导航到最后一个字符ex,或者搜索最后一次出现的正则表达式?

例子:

$ cd -- "$(mktemp --directory)"
$ printf '%s\n' foo bar foo bar > test.txt
$ ex -c '$' -c '?bar' -c 'visual' test.txt

此时,光标位于第 2 行而不是预期的第 4 行。使用ex -c '?bar' -c 'visual' test.txt产生相同的结果,即使我希望它在环绕时找到最后一行(vim确实)。

使用 Vim 7.3。

答案1

看起来像是ex最后的line -ex -c '1' -c '?bar' -c 'visual' test.txt将光标移动到最后一行。

答案2

在我的版本中ex$+1?...似乎开始向后搜索最后一行:

sh$ ex -version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Jul 12 2010 12:49:33)

sh$ ex -c '$+1?bar' -c visual test.txt

答案3

另一个解决方案:

ex -c '?bar' -c '/bar' -c 'visual' test.txt

bar默认情况下,'?bar'将从文件最后一行开始搜索字符串,但不搜索最后一行中的字符串。因此,当点击bar最后一行的第一行时,/bar使其正确,回到bar最后一行。

当最后一行不包含 string 时,这将失败bar

相关内容