进一步阅读

进一步阅读

我在使用 Z shell 的终端会话中尝试了此操作:

stty erase ^M

我收到了这样的消息:

stty: invalid integer argument: «CCPP»

我不知道该怎么办。

答案1

在 Z shell 中,^角色是扩展的通配符所识别的字符文件名扩展命令处理的一部分。

正如 Z shell 手册所解释的,该模式与^M任何文件名匹配除了与模式相匹配的一个M。所以发生的情况是该命令被扩展为stty erase后跟当前目录中的所有文件名除了一位名叫M如果有的话。

情况很简单,当前目录中有一个名为的文件,当扩展通配模式«CCPP»时,该文件是结果列表中的第一个文件。^M

引用或转义元字符:

  • stty erase '^M'
  • stty erase \^M

或者关闭 Z shell 的扩展通配符:

  • setopt no_extended_glob

比较一下经验这个人谁有不同的文件名并且其排除模式是?.该人位于https://askubuntu.com/a/206722/43344实际上执行了上述引用,并且确实提供了一个无效的参数(一个包含 3 个字符的字符串,而不是恰好 1 个字符的说明符)。

当然,对于erase特殊角色来说,CR 是一个奇怪的选择。但我不会解释你到底为什么要这么做。 ☺

进一步阅读

相关内容