Mam problem z znalezieniem odpowiedniego rozwiązania dla najnowszych plików w plugin FZF vim.Rozwiązanie robocze dla najnowszych plików FZF w Vim?
Wtyczka ta powinna posiada funkcje takie jak:
- występów plików otwarty w bieżącej sesji vim (jak bufory)
- plików filtrów jak NERD_tree, uciekinier
Próbowałem dwa rozwiązania
command! FZFMru call fzf#run({
\ 'source': reverse(s:all_files()),
\ 'sink': 'edit',
\ 'options': '-m --no-sort -x',
\ 'down': '40%' })
function! s:all_files()
return extend(
\ filter(copy(v:oldfiles),
\ "v:val !~ 'fugitive:\\|\\.svg|NERD_tree\\|^/tmp/\\|.git/'"),
\ map(filter(range(1, bufnr('$')), 'buflisted(v:val)'), 'bufname(v:val)'))
endfunction
Ten działa podczas sesji otwartej, ale po ponownym uruchomieniu vima nie widzę wszystkie ostatnio otwarte pliki.
command! FZFMru call s:fzf_wrap({
\'source': 'bash -c "'.
\ 'echo -e \"'.s:old_files().'\";'.
\ 'ag -l -g \"\"'.
\ '"',
\})
function! s:fzf_wrap(dict)
let defaults = {
\'sink' : 'edit',
\'options' : '+s -e -m',
\'tmux_height': '40%',
\}
call extend(a:dict, defaults, 'keep')
call fzf#run(a:dict)
endfunction
function! s:old_files()
let oldfiles = copy(v:oldfiles)
call filter(oldfiles, 'v:val !~ "fugitive"')
call filter(oldfiles, 'v:val !~ "NERD_tree"')
call filter(oldfiles, 'v:val !~ "^/tmp/"')
call filter(oldfiles, 'v:val !~ ".git/"')
call filter(oldfiles, 'v:val !~ ".svg"')
return join(oldfiles, '\n')
endfunction
To rozwiązanie filtruje poprawnie pliki, ale działa tylko dla plików otwartych w poprzedniej sesji. Więc muszę ponownie uruchomić vim, aby uzyskać bieżący bufor.
Czy znalazłeś działające rozwiązanie dla FZFMru w VIM?
pojawia się to nie działa (przynajmniej już). "Nie polecenie edytora: Historia" – matt
Działa dla mnie z wtyczkami nvim 0.2.2 i wtyczkami fzf. –