标签: autocorrection

如何使 zsh“正确”功能记住我的拼写更正决定

我已经启用校正(我不会把它自动更正在zsh中通过启用特别是因为这个问题)setopt correct.zshrc

现在,当我输入dtae终端时,我得到:

dtae        
zsh: correct 'dtae' to 'date' [nyae]? y
Tue Mar 31 11:39:31 CEST 2015
Run Code Online (Sandbox Code Playgroud)

在这一点上,我希望 zsh 记住我的决定。所以下次我输入时dtae它应该自动更正为date[1]。但是,这并没有发生,zsh 再次询问我该怎么做:

dtae
zsh: correct 'dtae' to 'date' [nyae]?
Run Code Online (Sandbox Code Playgroud)

[1] 当然,除非当时存在实际的dtae命令或别名。

更新:

我设法修改了 zsh 源代码(文件utils.c,函数spckword)以创建一个自定义文件,其中包含通过调用 zsh 的“正确”功能自动创建的别名:

原来的:

if (x == 'y' || x == ' ' || x == '\t') 
{
    *s = dupstring(best);
    if (hist)
    hwrep(best);
}
Run Code Online (Sandbox Code Playgroud)

修改的:

if (x == …
Run Code Online (Sandbox Code Playgroud)

zsh alias spell-checking autocorrection

26
推荐指数
1
解决办法
2411
查看次数

如何在 zsh 中禁用 sudo [command] 的自动更正?

我有 zsh 和 oh-my-zsh 的默认值,但无法弄清楚如何关闭我经常使用的特定命令的自动更正,例如:sudo mc 或 sudo gem update。问题是我有.mc目录和.gem目录并且 zsh 建议自动更正(zsh: correct 'mc' to '.mc' [nyae])。

通常我想配置 zsh 以便sudo [smth]不被视为用于自动更正的单独命令(它不是)。对此有什么解决办法?

zsh oh-my-zsh autocorrection

18
推荐指数
1
解决办法
2940
查看次数

cd 在给定不完整的目录名称时自动选择是标准行为吗?

我有三个文件夹叫做ProjectA,ProjectBProjectC. 当我tab-completecdcd Project并按Enter,它选择ProjectC。我发现其他类似案例也是如此;它默认为词典顺序的最后一个(但这也可能是最近更改/添加的)。

这是预期的默认行为cd,还是我在这里不小心设置了一些东西?

我正在使用 bash 4.3 运行 OSX 10.10.3。

bash cd-command autocorrection

17
推荐指数
1
解决办法
682
查看次数

你能让 zsh 自动更正更智能吗?

我喜欢自动zsh更正,但它不断询问我不需要更正的事情。

dzil build
zsh: correct 'build' to '.build' [nyae]? % 
Run Code Online (Sandbox Code Playgroud)

.build是由build(或运行该操作的任何其他命令创建的目录,因此dzil .build总是错误的,并且dzil build总是正确的。有什么方法可以将其传达给自动更正系统?

zsh line-editor autocorrection

7
推荐指数
1
解决办法
1770
查看次数

显示可能的更正但不自动应用它们

我有以下完成:

zstyle ':completion:*' completer _complete _approximate 
Run Code Online (Sandbox Code Playgroud)

因此,如果我输入错误并点击 TAB,我将看到一个包含更正命题(我喜欢的)的列表,同时拼写错误的单词将在命令行中自动更改为第一个命题(我不喜欢的)。那么如何摆脱这种在线自动校正呢?我只想要可能更正的列表,但命令行应该坚持使用原始文本。

zsh autocomplete autocorrection

5
推荐指数
1
解决办法
288
查看次数

不进行自动更正时如何教zsh?

我喜欢 ZSH 的自动更正功能,但有时它会妨碍:

  • 如果我有一个cli目录,当我尝试运行npm run ci.
  • 运行 Docker 命令时docker run -v /some/dir:/var/www,它将尝试自动更正为/some/dir/var/www
  • ... 还有很多

现在,我希望关闭自动更正或前缀的命令nocorrect。我想要的更多是围绕正常建议的“学习”自动更正,计算我对建议说“不”的次数,如果我已经说“不”3 次,则不再建议它。我这样的事情可能吗?

zsh autocorrection

5
推荐指数
1
解决办法
342
查看次数

阻止 ZSH 尝试将 ssh 更正为 .ssh 作为参数

这并不完全是重复的,因为我希望正确的_all 仍然有效。我确实不时搞砸了争论,ZSH 很乐意帮助我。当我在我的主目录中并且我想用类似的东西管理 sshdsystemctl reload ssh或者service ssh start它总是问我是否要更正到.ssh. 我通常执行我的工作,$HOME所以这会很烦人。我已经尝试过alias ssh='nocorrect ssh'并且alias ssh='nocorrectall ssh'(我认为它没有任何作用)。关于如何解决这个问题的任何想法?

zsh autocorrection

5
推荐指数
1
解决办法
1003
查看次数

在使用 zsh 的 `mv` 命令时,是否有一种(最好是非笨拙的)方法来避免拼写更正

虽然我喜欢 zsh,并且发现它的拼写更正很有用,但令人讨厌的是它更正了显然不应该更正的东西。例如,我刚刚执行

mv iso_ iso
Run Code Online (Sandbox Code Playgroud)

它回复了

zsh: correct 'iso' to 'iso_' [nyae]?
Run Code Online (Sandbox Code Playgroud)

想想看。将“iso”更正为“iso_”意味着我正在尝试执行

mv iso_ iso_
Run Code Online (Sandbox Code Playgroud)

这永远没有意义。因此,这确实是 zsh 中的一个设计缺陷,应该全面纠正。但是,鉴于它没有(至少在我使用的版本中)并且不太可能是,是否有一些设置可以纠正它?我更喜欢一种非笨拙的修复方式。mv例如, 的别名很笨拙。

zsh autocorrection

4
推荐指数
2
解决办法
620
查看次数

UNIX 中的拼写错误命令?

我不记得有什么 UNIX 命令可以让您记住如何正确编写命令。

让我们假设我说的命令叫做 MISPELL

所以运行 MISPELL 将产生以下输出:

$ MISPELL chlmod 
Run Code Online (Sandbox Code Playgroud)

输出:

chmod
Run Code Online (Sandbox Code Playgroud)

command-line autocorrection

2
推荐指数
1
解决办法
142
查看次数

zsh 命令自动更正

我已经看到并阅读过有关 zsh 提供命令输入自动更正的内容。例如,如果我输入 sl,它应该问我类似“您的意思是 ls 吗?”之类的问题。但是,在我的 zsh 中,这不会发生。它只是给出一个错误。有没有什么原因,可能是某些设置?(是的,我确定我运行的是 zsh 而不是 bash 之类的)

zsh oh-my-zsh autocorrection

0
推荐指数
1
解决办法
3656
查看次数