当我使用 vim 或 gvim 进行搜索时,光标在窗口中的最终定位有些随机,经常落在窗口中的最后(或第一)行。搜索突出显示有所帮助,但必须在屏幕上四处寻找才能找到光标仍然很麻烦……而且有点讽刺的是,在 vim 在一些兆字节长的日志文件中找到下一个结果后,我必须使用 ol ' 新皮质将其与最后 4K 左右隔离。
我可以手动通过在每次搜索后点击“zz”来获得我想要的效果,但更愿意修改我的_vimrc以使其自动发生。
这对你有用吗?
:nmap n nzz
:nmap p pzz
我也将这个技巧与其他命令一起使用:
nnoremap n nzz
nnoremap N Nzz
nnoremap <C-o> <C-o>zz
nnoremap <C-i> <C-i>zz
正如@Mike-B 指出的,公认的答案是“doing”
nmap n nzz
不打开折叠。 作为替代方案,我提出以下建议。这有点hacky,但似乎对我有用:
nmap nzvzz
如果您愿意,也可以与其他动议等效。 zv 应该打开所有折叠,直到当前光标位置可见。
我已经使用
nzz
映射有一段时间了,直到我发现了一个更适合我的选项。我还对屏幕上第一行或最后一行显示的结果感到恼火。
此选项将光标(以及当前搜索结果)保留在第一行/最后一行下方/上方 5 行。
:set scrolloff=5
我更喜欢这个,因为如果您在一页上有很多搜索结果,并且
each
nzz
会滚动缓冲区,那么 n
会很烦人。