For local file system listings, the netrw plugin uses Vim's getfsize() function. Its value would need to be converted to human units. Luckily, my ingo-library plugin provides such a function, so the following patch extends netrw (of the latest alpha version v154a from here) in such way:
--- netrw.vim.orig 2015-04-10 20:45:06.094760300 +0200
+++ netrw.vim 2015-04-10 20:47:38.387988100 +0200
@@ -9934,7 +9934,7 @@ fun! s:LocalListing()
" call Decho("pfile <".pfile.">")
if w:netrw_liststyle == s:LONGLIST
- let sz = getfsize(filename)
+ let sz = join(ingo#units#FormatBytesBinary(getfsize(filename)))
let fsz = strpart(" ",1,15-strlen(sz)).sz
let pfile= pfile."\t".fsz." ".strftime(g:netrw_timefmt,getftime(filename))
" call Decho("sz=".sz." fsz=".fsz)
If you also want relative file modification dates (e.g. 5 minutes ago) via a new option value g:netrw_timefmt = 'relative', you can apply the following patch instead:
--- netrw.vim.orig 2015-04-10 20:45:06.094760300 +0200
+++ netrw.vim 2015-04-10 20:55:40.937242900 +0200
@@ -9934,9 +9934,9 @@ fun! s:LocalListing()
" call Decho("pfile <".pfile.">")
if w:netrw_liststyle == s:LONGLIST
- let sz = getfsize(filename)
+ let sz = join(ingo#units#FormatBytesBinary(getfsize(filename)))
let fsz = strpart(" ",1,15-strlen(sz)).sz
- let pfile= pfile."\t".fsz." ".strftime(g:netrw_timefmt,getftime(filename))
+ let pfile= pfile."\t".fsz." ".(g:netrw_timefmt ==# 'relative' ? ingo#date#HumanReltime(localtime() - getftime(filename)) : strftime(g:netrw_timefmt,getftime(filename)))
" call Decho("sz=".sz." fsz=".fsz)
endif