该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
。