vi 将默认找到的行设置为屏幕中心?

vi set default found line to center of screen?

在 Solaris 10 系统上使用 vi。当我搜索具有通用语法的字符串时

/foo<CR>

在我的显示器上的 60 行中,找到的行的位置是半随机的。有时它在顶部附近,有时在中间,通常是最后一行。

我希望它位于一致的位置(底部上方的某个位置)。下面会一直放在中间

/foo/z.<CR>

我怎样才能使它成为默认行为,以便我只需键入

/foo<CR>

每次都会在中间显示找到的行吗?

在您的 ~/.vimrc 中添加如下内容:

let g:in_search = 0
function! StartSearch()
  let g:in_search = 1
endfunction

function! EndSearch()
  if g:in_search
    normal! zz
  endif
  let g:in_search = 0
endfunction

nnoremap / <ESC>:call StartSearch()<CR>/
cnoremap <CR> <CR>:call EndSearch()<CR>
nnoremap n nzz
nnoremap N Nzz

可以做到这一点。

但也许您只需要:

set incsearch
set hlsearch

?!