You can use the &columns
setting and some math to achieve this. Do you want to resize your existing splits, or make a new split at the right ratios? Since it's not entirely clear from your question, here's how you can do it both ways.
Resizing existing splits
I used this:
function! Quarter()
exec "vertical resize ".(&columns / 4). " N"
endfunction
This will resize the existing buffer to a quarter of the screen size. Of course, you can map this to a key, for example:
nnoremap <leader>q :call Quarter()<cr>
or
nnoremap <leader>q :exec "vertical resize ".(&columns / 4). " N"<cr>
Or you can bind this function to the VimResized
event.
Making new splits
You can do this:
:exec (&columns / 4)." vsplit"
to make the current window 1/4 and the new window fill up the rest, or
:exec (&columns / 4 * 3)." vsplit"
to make the new window 1/4 and the current window fill up the rest.