Ho un problema con trovare una soluzione adeguata per i file più recenti nel plugin vim FZF.Soluzione di lavoro per i file FZF più recenti in Vim?
Questo plugin dovrebbero ha le caratteristiche come:
- file dello spettacolo aperto in sessione vim corrente (come buffer)
- file di filtro come NERD_tree, latitante
Ho provato due soluzioni
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
Questo funziona durante la sessione aperta ma quando riavvio vim non vedo tutti gli ultimi file aperti.
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
Questa soluzione filtra correttamente i file ma funziona solo per i file aperti nella sessione precedente. Quindi ho bisogno di riavviare vim per ottenere il buffer corrente.
Hai trovato soluzione di lavoro per FZFMru in VIM?
sembra non funzionare (almeno più). "Non è un comando di editor: Cronologia" – matt
Funziona per me con nvim 0.2.2 e i plugin fzf aggiornati. –