将搜索结果放在屏幕顶部的vi中

时间:2017-08-24 16:10:54

标签: vim vi

在每个n命令搜索下一个匹配项后,我希望 vi 自动将该行放置在屏幕顶部。

2 个答案:

答案 0 :(得分:7)

zt命令将重绘vim,以便当前行位于屏幕顶部。来自:h zt

                            *z<CR>*
z<CR>           Redraw, line [count] at top of window (default
            cursor line).  Put cursor at first non-blank in the
            line.

                            *zt*
zt          Like "z<CR>", but leave the cursor in the same
            column.  {not in Vi}

因此,您可以使用.vimrc中的以下内容完成此操作:

nnoremap n nzt
nnoremap N Nzt
xnoremap n nzt
xnoremap N Nzt

虽然就个人而言,我更喜欢把它留在中间,所以我改为:

nnoremap n nzz
nnoremap N Nzz

答案 1 :(得分:3)

使用:set so=999

使用此方法,光标将始终位于中间位置。因此,在每个n命令搜索下一个匹配后,vim会自动将光标定位在屏幕的中间位置。

这是有利的,因为我们可以看到搜索的上下文。

有关详细信息,请参阅:help scrolloff