Shell中支持autosuggestion

终端中输入命令时,光标后面会给出一个推荐命令,如果OK,按➡️就可以快速选择输入,这种功能业界叫autosuggestion.

autosuggestion!=autocompletion

首先搞清楚相关概念的不同。

  1. autosuggestion是基于历史或其它逻辑自动给出推荐的命令输入,这个命令是完整的,推荐位置在光标后面

    https://static.1991421.cn/2024/2024-06-10-131006.jpeg

  2. autocompletion是基于命令规范或其它逻辑给出当前输入命令的选项值,需要按键触发,一般是Tab键,补全的并不是完整的命令,而是当前命令的选项值,同时补全推荐会是多个,需要用户自行去选择。

    https://static.1991421.cn/2024/2024-06-10-223521.jpeg

由上可以知道两者不同,且并无冲突。

autosuggestion配置

这里我们聚焦suggestion的支持,不同Shell,autosuggestion配置不同。

bash

目前社区并无方案,但终端产品还是看到warp支持了,不确定它是怎么做到的。

zsh

推荐使用Oh My Zsh来安装。

1
2
3
4
5
6
7
8
# 安装oh-my-zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# zsh-autosuggestions插件配置
plugins=(
...
zsh-autosuggestions
)

fish

安装fish后默认就已经有autosuggestions,不需要任何设置

写在最后

个人建议开启autosuggestion,毕竟很多时候命令会重复输入,有了suggestion会节约一些时间。