我有这个vim映射:

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


是否可以更改初始列表上的排序?
最好先查看最近更改的文件。
当我开始搜索时,从fzf进行常规排序就可以了。

最佳答案

我知道没有简单的方法,不。

但是您只需要编写一个函数即可按日期对文件列表进行排序(请注意,这都是未经测试的):

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。

08-07 20:54