Vim FZF:在文件日期对初始结果进行排序

时间:2017-08-04 07:44:16

标签: vim fzf

我有这个vim映射:

nnoremap <silent> <leader><space> :Files<CR>

是否可以更改初始列表中的排序?
最先看到最近更改过的文件会很高兴 当我开始搜索时,从fzf正常排序很好。

1 个答案:

答案 0 :(得分:3)

我知道不容易,不。

但你可以写一个函数来获取按日期排序的文件列表(注意这都是未经测试的):

let l:filelist = split(system(find . -type f -printf '%T@ %p\n' | 
                              \ sort -k 1 -n | sed 's/^[^ ]* //'), 'n')

还有一些其他命令,具体取决于您可以使用的环境。但这里出现了第一个问题。该命令会删除目录中的所有文件。尊重你的gitignore或需要更多的工作。 这也比fzf慢很多!

获得列表后,您可以再次使用fzf:

call fzf#run({'source': l:filelist, 'sink': 'e', 'down': '40%'})

所以我认为这可能适用于小型项目,但是如果你有一个更大的项目,它就会变慢,如果你使用像rails这样经常重建资产的东西,你将不得不过滤结果。

更新

如r03的评论所述,如果你想使用这个全局,你也可以编辑FZF_DEFAULT_COMMAND变量。不需要将它传递给vimscript。