If you replace %c
with %f
nnoremap yf :!echo %c:p | xclip -selection clipboard %i<cr>
you'll get all files in the selection, but they will be on the same line. You probably want something like this
nnoremap yf :!printf "\n%%s" %f:p | tail -c+2 | xclip -selection clipboard %i<cr>
which will put each path on a separate line.