评论在 macOS Big Sur 上的 iTerm2 中不起作用

commenting not working in iTerm2 on macOS Big Sur

我在 macOS 11.5.2 上使用 iTerm2(Z shell)。因为我经常使用某些 Perl 单行代码(shell 应用程序(如 iTerm2)中的一行 Perl 命令),所以如果在单行代码中添加一些注释以便我可以导航回它会容易得多使用iTerm2的搜索功能。

通常情况下,perl path-to-perl-snippet/xxx.pl --an-arg xxx --other-args xxx a.txt #this is doing some task 与 a.txt 一起工作。

最近系统全新安装,发现使用#评论的问题,即#后面的内容被命令解释。这不是我想要的;应该只是评论。

一开始我以为是Perl的问题。但是最简单的命令 ls #display list 也有完全相同的问题,给出以下错误 ls: #display: No such file or directory ls: list: No such file or directory"

预期的行为应该是在iTerm2中执行ls(没有#display list),即显示当前目录下的所有文件。

所以真正的问题可能不在于 Perl。可能是 iTerm2 或其他设置的设置问题。

任何建议都会有所帮助。谢谢。

是否#在交互式shell中引入注释由interactive_comments选项控制。它应该默认启用,但如果它已被禁用,运行

shopt -s interactive_comments

Newer versions of OS X (as of 10.15 Catalina) 默认使用 zsh shell,它有一个“interactivecomments”shell 选项。它默认设置为“关闭”。开启它:

setopt interactivecomments

要为将来 shell 保留此设置,请将该行编辑到您的 ~/.zshrc 文件中。

该设置记录在 man zshoptions 部分或在线 https://zsh.sourceforge.io/Doc/Release/Options.html#index-comments_002c-in-interactive-shells。它在那里被列为 INTERACTIVE_COMMENTS,但该部分的介绍说:

These names are case insensitive and underscores are ignored. For example, ‘allexport’ is equivalent to ‘A__lleXP_ort’.

这意味着您可以通过多种方式启用该选项(部分列表):

set -o interactivecomments
set -o Interactive_Comments
set -k
setopt interactivecomments

以及禁用它(部分列表):

set +o interactivecomments
set +o Interactive_Comments
set +k
setopt nointeractivecomments