在Zsh中,[nyae]是什么意思?

243

我运行了以下命令,但没有成功

dir

我得到了

zsh: correct 'dir' to 'gdir' [nyae]? 

Zsh 中的 [nyae] 是什么意思?


4
顺便说一下:你可能希望将 dir 别名为 ls -l,这样 zsh 就不会自动更正它了,你就能得到预期的结果。 - eckes
3个回答

328

zsh拥有强大的纠错机制。如果您以错误的方式输入命令,它会提供更正建议。 这里发生的情况是dir是一个未知的命令,zsh建议使用gdir,而您可能想要的是ls

  1. 如果您想要执行gdir,请按下y(是)
  2. 如果您仍想尝试执行dir,请按下n(否)
  3. 如果您想要执行完全不同拼写的命令,例如ls,请按下a(中止),然后输入命令
  4. 如果您想要执行类似拼写的命令,例如udir,请按下e(编辑),然后编辑您的命令。

82
希望有一个额外的键选项,让“不纠正”更容易,比如[nyaei] - i = 永久忽略! - manafire
73
我来这里是因为我以为 a 的意思是“永远”,我希望它的意思是那样。 - Rafael Eyng
5
我本来希望和 @RafaelEyng 一样,但现在我在我的 .zshrc 文件里加入了以下这行:alias gti=git。这是一种永久自动更正的方法 ^^(是的,我经常错误地拼写 git,实在受不了了)。 - xeruf
1
我一直以为 a 总是和 e 从不(因为它的第二个字母,因为 n 已经不行了)。今天我才知道。 - hans
@RafaelEyng 我也是,但你至少可以手动禁用该功能 https://superuser.com/questions/439209/how-to-partially-disable-the-zshs-autocorrect - RCross

160
一个快速参考:
$ dir
zsh: correct 'dir' to 'gdir' [nyae]?
  • n: no – 不要更正;按照你输入的方式运行dir
  • y: yes – 要更正;按照Zsh建议的方式运行gdir
  • a: abort – 什么都不要运行,并获取一个新提示符(以输入完全不同的命令)
  • e: edit – 交互式地编辑你输入的内容——例如,这样你就可以将dir更改为udir

25
我基于Ludwig的解释来回答,但我用了更简洁的语言。这种格式适合那些已经猜测出Z shell纠错如何工作的人,他们只想知道每个选项的含义。 - Rory O'Kane
非常清晰!有没有一个好的zsh使用介绍?我发现zsh文档有500多页,我想知道基本用法和正则表达式。 - mao2047

46

来自Z Shell简介

当shell询问您是否要更正一个单词时,如果按下y,它将被更正。 如果按下n,则会保持原样。 按下a中止命令,按下e会再次将该行编辑出来,以防您认为单词拼写错误,但不喜欢更正建议。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接