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


37

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

语法高亮

SS#1

细节:

  • 您很快就会注意到,fish在您键入时会执行语法突出显示。默认情况下,无效命令显示为红色:
  • 命令可能因为它不存在而无效,或者引用了您无法执行的文件。该命令生效后,将以其他颜色显示
  • 键入时,fish将在有效文件路径下划线
  • 这告诉您存在一个以'somefi'开头的文件,这在您键入时很有用。

自我建议

SS#2

细节:

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

4
关于最接近的模拟bash是自动补全。不幸的是,fish的脚本非常基础,以至于无法很好地替代我日常使用的那种脚本bash
DopeGhoti 2014年

1
@DopeGhoti-因此,我问了Q 8
slm

2
在高延迟的ssh链接上尝试一下,您会很快讨厌内联功能。
llua 2014年

1
@slm其中大多数都是极端情况,有些比其他情况更糟,但是当您在许多环境中部署时,这可能会很糟糕。的“杀手锏” 4.3是cd -@wait -nglobasciiranges,和$BASH_COMPAT,其中有很多人想要的。几乎所有其余的只是消防。
克里斯·

1
@strugee,有一个zsh语法荧光笔-github.com/zsh-users/zsh-syntax-highlighting,我是通过非常酷的oh-my-zsh找到的。
乔街区

Answers:


2

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

即使Bash的“自动完成”功能无法显示您想要的建议,但实际上在按[TAB]时,它确实会填满内容。如果完成内容有很多选择,请按两次[TAB],它会显示所有选项。

例如:

$ cat /etc/pa[TAB]

=>没有任何反应

$ cat /etc/pa[TAB][TAB]
pam.d/       passwd       paths        paths.d/

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

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

如果要跳至上一个命令,请按^ R,然后键入一些字符:

(reverse-i-search)`cd': cd ..

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

我知道这不是您真正想要的,但是几乎可以做到,并且足够方便。


8
感谢您抽出宝贵的时间回答这个问题并提出建议。我熟悉此功能并每天使用,我想要的功能是它可以动态执行此功能,而无需点击[TAB] [TAB]来启动它。
slm

2

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

我发现的最接近的是https://github.com/dvorka/hstr(一个shell建议框)


除了重击:

我没有对其进行测试,但是发现的唯一“移植替代品”是针对zsh以下内容编写的:https//github.com/zsh-users/zsh-autosuggestions

一些qwanting也将我引到https://websetnet.com/shell-packs-power-python-bash/https://github.com/xonsh/xonsh别名http://xon.sh,也许也是开箱即用

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.