我有这个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。