Fish 中是否有类似于 Bash 的 CTRL+R 的“反向增量搜索”功能?

use*_*637 42 bash fish

Fish的自动完成功能给我留下了深刻的印象。但是,我在 Fish 中找不到 Bash 中的一项功能。当您在 Bash 中按Ctrl+R并开始输入一个术语时,系统会.bash_history以相反的顺序对您进行搜索以查找匹配项。

Fish 中是否有类似的功能?

ter*_*don 52

我从来没有用过fish自己,但粗略的谷歌搜索带来了这个页面,它指出

强大的历史机制

现代 shell 将以前的命令保存在命令历史记录中。您可以使用向上和向下箭头查看较早的命令。Fish 通过集成历史搜索功能扩展了这一概念。要搜索历史记录,只需输入搜索字符串,然后按向上箭头。通过使用向上和向下箭头,您可以搜索较旧和较新的匹配项。鱼的历史记录会自动删除重复的匹配项,并突出显示匹配的子字符串。这些功能可以更快地搜索和重用以前的命令。

这就是你要找的吗?它似乎与 bash 非常相似。


ric*_*ici 8

fish 没有实现增量历史搜索,尽管它似乎不时出现。2.0 之前的文档有一个“缺失的功能和错误”部分1,其中列出了“可能的功能”列表中相当靠后的增量历史搜索。Fish-users 邮件列表包含来自 Axel Liljencratz 的这条消息,日期为 2006 年 8 月 21 日,他说增量搜索将是一个不错的功能。

如果您习惯于 bash 风格的增量搜索,鱼历史搜索确实需要一些时间来适应。您必须先输入搜索词,然后使用向上和向下箭头向上和向下移动匹配条目。但我想你已经习惯了。


小智 8

您可以使用:https : //github.com/junegunn/fzf

这个库提供了强大的鱼壳搜索。


小智 6

现在是fish shell 3.6.0

https://github.com/fish-shell/fish-shell/releases/tag/3.6.0

默认情况下,Control-R 现在会在寻呼机中打开命令历史记录 (#602)。这是完全可搜索的并且语法突出显示,作为其他 shell 中增量搜索的替代方案。为自定义绑定添加了新的特殊输入功能history-pager。


Duk*_*uke 5

更好的 Ctrl+r 反向搜索FZFfzf 鱼插件,使用Triton 鱼包管理器,配置为使用The Silver Searcher

〜/.config/fish/config.fish:

triton jethrokuan/fzf
set -U FZF_COMPLETE 2
set -U FZF_FIND_FILE_COMMAND "ag -l --hidden --ignore .git"
set -U FZF_DEFAULT_OPTS "--height 40% --layout=reverse --border"
Run Code Online (Sandbox Code Playgroud)

在 Mac OS 上,安装先决条件:

brew install the_silver_searcher
brew install fzf
Run Code Online (Sandbox Code Playgroud)