如何让fzf保留bash历史排序后的输出顺序?
解决fzf不维持历史记录排序结果的问题
你的问题根源在于fzf默认会基于搜索匹配度对输入内容重新排序,要保留sort命令生成的原始顺序,只需给fzf添加--no-sort参数即可。
修改后的函数代码如下:
history_cp() { history | sort --reverse --numeric-sort | fzf --no-sort | # 禁用fzf自动排序,维持输入的原始顺序 awk '{ $1=""; print }' | tr -s ' ' | xclip -selection clipboard }
补充说明
--no-sort参数会让fzf完全按照上游命令输出的顺序展示内容,不会根据搜索关键词调整结果排序- 若需要在搜索时仍保留原始排序的优先级,可额外搭配
--tiebreak=index参数(不过仅--no-sort已能解决你的核心需求)
内容的提问来源于stack exchange,提问作者The.Wolfgang.Grimmer
相关产品推荐
相关产品推荐

