Поскольку кажется, что невозможно изменить завершение встроенного буфера Vim, единственное, что я могу предложить (кроме открытия этих файлов, уже находящихся в домашнем каталоге), это определить собственную команду :b
с желаемым завершением. Это может быть что-то вроде этого:
function! CustomBufferComplete(a, l, p)
let buf_out = ''
redir => buf_out
silent buffers
redir END
let buf_list = map(split(buf_out, "\n"), 'substitute(v:val, ' .
\ '''^.*"\%(\~[/\\]\)\?\([^"]\+\)".*$'', "\\1", "g")')
return join(buf_list, "\n")
endfunction
command! -nargs=1 -complete=custom,CustomBufferComplete B b <args>
(Обратите внимание, что он обрезает часть пути ~/
перед возвратом списка завершения.)