Учитывая, что Вы будете использовать своего рода диспетчер пакетов для установки библиотек, разве не было бы намного легче просто иметь список пакетов, что Вы хотите быть установленными и гарантировать так или иначе, что они установлены?
100% диспетчеров пакетов, которые я знаю, имеют своего рода режим (режим по умолчанию, обычно), что любой устанавливают пакет, если он не установлен, обновления это к последней версии, если он установил, но старый и просто передает, если это уже актуально.
Например, с apt-get
можно всегда делать apt-get install a b c d ...
для проверки это упаковывает a
, b
, c
, d
установлены. С yum
это было бы yum install a b c d
, и т.д.
При использовании различных систем с различными диспетчерами пакетов в VPSes Вы закончите с записью некоторой логики для обнаружения, который делает диспетчер пакетов это использует так или иначе, таким образом, этот шаг неизбежен.
Можно получить имена файлов через glob()
, как это, которое предлагает все текстовые файлы в Вашем корневом каталоге для завершения:
inoremap <F5> <C-R>=ListFiles()<CR>
func! ListFiles()
let files = map(split(glob('~/*.txt'), "\n"), 'fnamemodify(v:val, ":t")')
call complete(col('.'), files)
return ''
endfunc
Для снятия изоляции с пути я использовал fnamemodify()
, который я map()
'редактор по списку.