Bash 是否具有类似的功能,例如 Fish 的自动建议和突出显示?

slm*_*slm 45 shell bash fish

我最近注意到 Fish 中有 2 个功能,想知道是否有人知道 Bash 中是否也提供这些功能?

语法高亮

党卫军#1

规格:

  • 您会很快注意到,fish 在您键入时执行语法高亮显示。无效的命令默认为红色:
  • 命令可能无效,因为它不存在,或者引用了一个您无法执行的文件。当命令生效时,它以不同的颜色显示
  • 键入时,fish 将在有效的文件路径下划线
  • 这告诉您存在一个以“somefi”开头的文件,这是您键入时的有用反馈。

自动建议

党卫军#2

规格:

  • fish 会在您键入时建议命令,并在光标右侧以灰色显示建议。
  • 它知道路径和选项
  • 要接受自动建议,请按向右箭头或 Control-F。如果自动建议不是您想要的,请忽略它。

chi*_*.de 5

不幸的是没有。但我预测,如果您尝试实现这些功能,那么 bash 将大大减慢。也许这就是为什么还没有人“移植”这些功能的原因。

我找到的最近的是https://github.com/dvorka/hstr,一个 shell 意见箱


抛开bash:

我没有测试它,但我发现的唯一“移植替代品”是为zshhttps : //github.com/zsh-users/zsh-autosuggestions编写的

一些 qwant'ing 也引导我到https://websetnet.com/shell-packs-power-python-bash/https://github.com/xonsh/xonsh别名http://xon.sh,也许它也支持开箱即用

...但是,我很确定您对 bash 的其他替代方案不感兴趣,因为那样您就可以切换到 fish ;)


Rak*_*iha 5

正如这里提到的,它可以通过ble.sh实现

# Quick TRIAL without installation
# requires the commands git, make (GNU make), and gawk

git clone --recursive https://github.com/akinomyoga/ble.sh.git
make -C ble.sh
source ble.sh/out/ble.sh
Run Code Online (Sandbox Code Playgroud)

这是 Bash with blesh 的快速演示。

在此处输入图片说明

更多细节请参见:Ble.sh 的README


小智 1

我不确定 Bash 突出显示,但 Bash 的自动完成功能可能会像您提到的那样自动建议。

尽管 Bash 的自动完成功能无法按照您想要的方式显示建议,但实际上当您按 [TAB] 时,它确实会填充内容。如果完成内容有很多选择,按两次 [TAB] 即可显示所有选项。

例如:

$ cat /etc/pa[TAB]
Run Code Online (Sandbox Code Playgroud)

=> 什么也没发生

$ cat /etc/pa[TAB][TAB]
pam.d/       passwd       paths        paths.d/
Run Code Online (Sandbox Code Playgroud)

=> 显示所有以“/etc/pa”开头的文件/目录

您可以配置为使用任何命令、参数、文件/目录...进行自动完成,或者像编程一样使用它
更多信息:http ://www.linuxjournal.com/content/more-using-bash-complete -命令

如果您想跳转到过去的命令,请按 ^R 然后输入一些字符:

(reverse-i-search)`cd': cd ..
Run Code Online (Sandbox Code Playgroud)

=> 跳转到以“cd”开头的最后一个命令

我知道这并不完全是您想要的,但几乎可以做同样的事情并为您提供足够的便利。

  • 感谢您花时间回答这个问题并提出这个建议。我熟悉这个功能并且每天都使用它,我想要的功能是它会动态地执行,而不需要点击 [TAB][TAB] 来启动它。 (11认同)