2016-10-11 5 views
1

Использование vi в системе Solaris 10. Когда я искать строку с общим синтаксисомvi set default найденная линия к центру экрана?

/foo<CR> 

размещение найденной линии semingly случайным образом в пределах 60 линий на моем экране. Иногда он находится рядом с верхней, иногда средней, часто последней строкой.

Я хотел бы, чтобы это было в постоянном месте (где-то внизу). Ниже всегда будет поместить его в середине

/foo/z.<CR> 

Как я могу сделать это поведение по умолчанию, так что если я просто введите

/foo<CR> 

он будет отображать найденную строку в середине каждый раз?

+0

Этот Q ** может ** быть более подходящим на S.E. связанные сайты http://superuser.com ИЛИ http://vi.stackexchange.com. Подумайте, используя ссылку 'flag' в нижней части вашего Q и попросите модератора переместить ее. Пожалуйста, не публикуйте те же Q на двух разных сайтах. Спасибо и удачи – shellter

+0

vi не будет прокручиваться, когда он не понадобится. Когда у вас будет больше 'foo' в части файла на экране, он перепрыгнет через них. И как можно поместить линию посередине, когда ваш файл имеет только одну строку? –

ответ

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