在 macOS Catalina 上,当我复制文本并粘贴到终端时,文本会突出显示(基本上,文本周围有 ANSI 颜色代码)。我不知道这个功能是什么时候包含的,但是有办法禁用它吗?
答案1
从 macOS Catalina 开始,新帐户的默认 shell 现在是zsh
而不是bash
。
zsh
有一项名为“括号粘贴”的功能,允许 shell(特别是 zsh 的行编辑模式“zle”)以不同于一次输入一个字符的方式处理粘贴的文本(假设您的终端仿真器支持此功能,macOS 的内置 Terminal.app 支持此功能)。正是这个“zsh 行编辑括号粘贴”突出显示了您的文本。
要禁用此功能,请取消设置“zle_bracketed_paste”环境变量:
% unset zle_bracketed_paste
您应该能够将该命令添加到适当的 shell 启动脚本中,以便每次都调用它(~/.zlogin
对我来说,它很有用)。
或者,如果您愿意的话,您可以将 shell 切换为 bash:
% chsh -s /bin/bash
如果您想了解有关 zsh 的行编辑模式对括号粘贴的支持的更多信息,请参阅zshzle
和zshparam
手册页。
Catalina 的内置版本bash
相当老旧,不支持括号粘贴,但最新版本的bash
做bash
,因此如果您已经安装并运行了足够支持括号粘贴的较新版本,则可以使用命令禁用它。您可以根据自己的情况将该 bind 命令添加到适当的 bash shell 启动文件中,也可以仅将其部分bind "set enable-bracketed-paste off"
添加到您的.set enable-bracketed-paste off
~/.inputrc