自动居中vim搜索结果

问题描述 投票:0回答:4

当我使用 vim 或 gvim 进行搜索时,光标在窗口中的最终定位有些随机,经常落在窗口中的最后(或第一)行。搜索突出显示有所帮助,但必须在屏幕上四处寻找才能找到光标仍然很麻烦……而且有点讽刺的是,在 vim 在一些兆字节长的日志文件中找到下一个结果后,我必须使用 ol ' 新皮质将其与最后 4K 左右隔离。

我可以手动通过在每次搜索后点击“zz”来获得我想要的效果,但更愿意修改我的_vimrc以使其自动发生。

vim
4个回答
11
投票

这对你有用吗?

:nmap n nzz  
:nmap p pzz

2
投票

我也将这个技巧与其他命令一起使用:

nnoremap n nzz
nnoremap N Nzz
nnoremap <C-o> <C-o>zz
nnoremap <C-i> <C-i>zz

1
投票

正如@Mike-B 指出的,公认的答案是“doing”

nmap n nzz

不打开折叠。 作为替代方案,我提出以下建议。这有点hacky,但似乎对我有用:

nmap nzvzz

如果您愿意,也可以与其他动议等效。 zv 应该打开所有折叠,直到当前光标位置可见。


1
投票

我已经使用

nzz
映射有一段时间了,直到我发现了一个更适合我的选项。我还对屏幕上第一行或最后一行显示的结果感到恼火。

此选项将光标(以及当前搜索结果)保留在第一行/最后一行下方/上方 5 行。

:set scrolloff=5

我更喜欢这个,因为如果您在一页上有很多搜索结果,并且

each
nzz 会滚动缓冲区,那么
n
会很烦人。

© www.soinside.com 2019 - 2024. All rights reserved.