为什么粘贴的文本会在 macOS Catalina 的终端中突出显示?

为什么粘贴的文本会在 macOS Catalina 的终端中突出显示?

在 macOS Catalina 上,当我复制文本并粘贴到终端时,文本会突出显示(基本上,文本周围有 ANSI 颜色代码)。我不知道这个功能是什么时候包含的,但是有办法禁用它吗?

答案1

从 macOS Catalina 开始,新帐户的默认 shell 现在是zsh而不是bash

zsh有一项名为“括号粘贴”的功能,允许 shell(特别是 zsh 的行编辑模式“zle”)以不同于一次输入一个字符的方式处理粘贴的文本(假设您的终端仿真器支持此功能,macOS 的内置 Terminal.app 支持此功能)。正是这个“zsh 行编辑括号粘贴”突出显示了您的文本。

要禁用此功能,请取消设置“zle_bracketed_pa​​ste”环境变量:

% unset zle_bracketed_paste

您应该能够将该命令添加到适当的 shell 启动脚本中,以便每次都调用它(~/.zlogin对我来说,它很有用)。

或者,如果您愿意的话,您可以将 shell 切换为 bash:

% chsh -s /bin/bash

如果您想了解有关 zsh 的行编辑模式对括号粘贴的支持的更多信息,请参阅zshzlezshparam手册页。

Catalina 的内置版本bash相当老旧,不支持括号粘贴,但最新版本的bash bash,因此如果您已经安装并运行了足够支持括号粘贴的较新版本,则可以使用命令禁用它。您可以根据自己的情况将该 bind 命令添加到适当的 bash shell 启动文件中,也可以仅将其部分bind "set enable-bracketed-paste off"添加到您的.set enable-bracketed-paste off~/.inputrc

相关内容