4

我有这个 vim 映射:

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

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

4

1 回答 1

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。

于 2017-08-04T08:26:08.130 回答