2016-10-11 46 views
1

在Solaris 10系统上使用vi。当我搜索字符串的常用语法vi将默认发现的行设置为屏幕中心?

/foo<CR> 

找到线的位置是我的显示器上显示60行内semingly随机的。有时它靠近顶部,有时是中部,通常是最后一条线。

我希望它位于一个一致的位置,(底部以上的某处)。下面将始终将其放置在中间

/foo/z.<CR> 

我怎么能作出这样的默认行为,这样,如果我只需键入

/foo<CR> 

它会显示在每一次中间找到的行?

+0

这个Q **可能更适合于S.E.相关网站http://superuser.com或http://vi.stackexchange.com。考虑使用Q底部的'flag'链接并请主持人移动它。请不要在2个不同的网站上发布相同的Q.感谢和好运 – shellter

+0

当不需要时,vi不会滚动。当屏幕上的文件部分有更多'foo'时,它会跳过它们。当你的文件只有一行时,vi如何将这行放在中间? –

回答

1

添加在您的~/.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 

?!

+0

vi,不是vim,所以我创建了.virc并放入了脚本。它似乎工作正常,谢谢。 (也没有incsearch和hlsearch可用)。 – JimR

相关问题