Насколько я знаю, вы не можете переназначить существующую команду split
, но вы можете добиться того же эффекта, написав новую функцию Split
и затем используя сокращение в командном режиме (cabbrev
).,
Вот функция / отображение, которая должна делать то, что вы хотите.
function! MySplit( fname )
let bufnum=bufnr(expand(a:fname))
let winnum=bufwinnr(bufnum)
if winnum != -1
" Jump to existing split
exe winnum . "wincmd w"
else
" Make new split as usual
exe "split " . a:fname
endif
endfunction
command! -nargs=1 Split :call MySplit("<args>")
cabbrev split Split
Обратите внимание, что это будет «проверять» только существующие расщепления в текущей вкладке, а скрытые буферы игнорируются.(Тем не менее, не должно быть слишком сложно добавить дополнительные случаи для улучшения этой функциональности.)