Funkcja do działania wymaga pluginu fzf.vim https://github.com/junegunn/fzf.vim

Instalacja za pomocą menadżera vim-plug https://github.com/junegunn/vim-plug

Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'

Katalog z makietkami ustawiamy w zmiennej g:templates_dir

W funkcji s:read_template_into_buffer(template) możemy wprowadzić jedną modyfikację, jako, że makietek używa się do wstawienia typowej zawartości nagłówka pliku, to funkcja wstawia makietkę na początku pliku, za to odpowiedzialna jest linia (4) execute '0r '.g:templates_dir.'/'.a:template, zmieniając w niej 0r na .r, makietka będzie wstawiana w bieżącej linii zamiast na początku pliku.

let g:templates_dir = '~/.vim/templates'

function! s:read_template_into_buffer(template)
    execute '0r '.g:templates_dir.'/'.a:template
endfunction

command! -bang -nargs=* LoadTemplate call fzf#run({
    \   'source': 'ls -1 '.g:templates_dir,
    \   'down': '20%',
    \   'sink': function('<sid>read_template_into_buffer')
    \ })

wstecz

Date: 2020-10-22T23:50:24+02:00