如何在 ubuntu 中使用“您的意思是”功能?

如何在 ubuntu 中使用“您的意思是”功能?

如果我在 Ubuntu shell 中输入了错误的命令,它会提供建议。通常,建议是正确的,我希望使用它。但除了重复最后一个命令并自己进行更改之外,没有其他办法。为什么它不提供是/否类型的建议,您只需输入 y 即可接受建议?有什么建议可以启用这种行为吗?

事情的经过如下:

user@user:/media/tux$ git stastus
git: 'stastus' is not a git command. See 'git --help'.

Did you mean this?
    status
user@user:/media/tux$

答案1

您的示例中的建议不是由Ubuntu 的 shell,而是help.autocorrectGit 本身内置的功能。

去年的讨论在 Git 中添加交互式“是/否”提示,但一些细节尚未确定,因此工作仍未完成。

如果你正在寻找可以对任何命令提出此类建议的东西,你可能想尝试一下使用 Z shell (zsh) 代替 Bash。它为命令和文件名提供通用的拼写校正,并提供交互式提示:

$ ehco hello > test.txt
zsh: correct 'ehco' to 'echo' [nyae]? y
$ cat tesst.txt
zsh: correct 'tesst.txt' to 'test.txt' [nyae]? y
hello

不过,更换 shell 并非一件可以掉以轻心的事情。使用任何非默认 shell 都可能遇到一些问题,需要花费时间和精力来解决。

答案2

大多数 Linux shell 允许您使用向上箭头键滚动浏览您最近输入的命令列表,然后您可以在按 Enter 运行新修改的行之前对其进行编辑。

对于 Ubuntu,默认的终端 shell 是 Bash,它非常有效地支持这一点。

答案3

这似乎是 git 命令本身提供的功能:

asb@asb-laptop:~$ git stastus
git: 'stastus' is not a git command. See 'git --help'.

Did you mean this?
    status
asb@asb-laptop:~$ svn stastus
Unknown command: 'stastus'
Type 'svn help' for usage.

虽然 Ubuntucommand-not-found默认会安装。它会针对输入错误或卸载的命令给出建议:

asb@asb-laptop:~$ foo
No command 'foo' found, did you mean:
 Command 'zoo' from package 'zoo' (universe)
 Command 'goo' from package 'goo' (universe)
 Command 'xoo' from package 'xoo' (universe)
 Command 'fio' from package 'fio' (universe)
 Command 'fop' from package 'fop' (main)
 Command 'fgo' from package 'fgo' (universe)
 Command 'fox' from package 'objcryst-fox' (universe)
 Command 'fog' from package 'ruby-fog' (universe)
foo: command not found

相关内容