11 个稳定版本
1.3.0 | 2023 年 2 月 11 日 |
---|---|
1.2.0 | 2022 年 7 月 4 日 |
1.1.0 | 2021 年 12 月 19 日 |
1.0.7 | 2020 年 8 月 3 日 |
1.0.2 | 2018 年 9 月 20 日 |
#569 在 命令行工具 中
13KB
240 行
proximity-sort
此脚本提供了一个简单的命令行工具,该工具通过输入路径与给定路径的路径邻近度对其输入进行排序。例如,对于路径 foo/bar.txt
,以下输入
quox.txt
foo/bar.txt
foo/baz.txt
将产生以下输出
foo/bar.txt
foo/baz.txt
quox.txt
这些行是按照输入路径和提供路径之间共享的前导路径组件的数量进行排序的。
此程序主要是为了允许为 fzf
(在 junegunn/fzf.vim#360 和 junegunn/fzf.vim#492 中请求) 提供上下文感知的建议,而不对 fzf
本身进行修改 (参见 junegunn/fzf#1380)。
安装
如果您已安装 Rust,您可以使用以下命令安装此工具:
cargo install proximity-sort
用法
可以使用 fzf
运行它
$ fd -t f | proximity-sort path/to/file | fzf --tiebreak=index
您可以使用以下命令将其添加到您的 .vimrc
:
function! s:list_cmd()
let base = fnamemodify(expand('%'), ':h:.:S')
return base == '.' ? 'fd -t f' : printf('fd -t f | proximity-sort %s', expand('%'))
endfunction
command! -bang -nargs=? -complete=dir Files
\ call fzf#vim#files(<q-args>, {'source': s:list_cmd(),
\ 'options': '--tiebreak=index'}, <bang>0)
相同邻近度的路径按字母顺序排序
$ echo "banana\napple/pie\napple" | proximity-sort . -s
> apple
> banana
> apple/pie
依赖项
~3–12MB
~143K SLoC