有没有办法阻止 PowerPoint 或 macOS 将双破折号(“--”)转换为长破折号(“—”)?上下文:我在运行 macOS Sonoma 14.0 的 MacBook Pro 上的 PowerPoint for Mac v16.78 幻灯片中使用文本框。有时我需要在 PowerPoint 文本框中编写带有标志(每个标志都以“--”开头)的示例 shell 代码,而此功能会破坏标志。
几年前有人问过类似的问题此主题,但 macOS 已经发生了变化,并且本帖子中讨论的补救措施似乎在这种情况下不起作用。
我至今尝试过但没有成功的补救措施:
- 在 PowerPoint 中,禁用所有自动更正功能
- 在 PowerPoint 中,输入“--”代替“--”
- 在 PowerPoint 中,输入“--”代替“—”
- 在 macOS 系统设置 > 键盘 > 文本替换下,将“--”替换为“--”;尝试用“--”替换“—”;也尝试过不替换
- 在 macOS 系统设置 > 键盘 > 所有输入源(当前为“美国”英语)下,禁用“自动更正拼写”和“使用智能引号和破折号”
- 在 PowerPoint 和 macOS 中,尝试指定“--”作为替代文本的替换(例如“++”),但没有发生替换
到目前为止,我发现的主要解决方法是使用 command+Z 在每次文本替换发生后立即撤消。此外,您可以在文本编辑器中起草文本,然后一次性将其粘贴到幻灯片中,但一定有更好的方法。
更新 1:我了解到defaults --help
在终端中运行提供了一些有关读取和写入(重置)当前默认设置的信息。ChatGPT-4 贡献了以下代码来识别哪些域包含与破折号替换相关的设置:
# Loop through each domain
for domain in $(defaults domains | tr ',' '\n'); do
# Check if the domain contains settings related to dash substitution
result=$(defaults read "$domain" 2>/dev/null | grep -i 'dashsubstitution')
if [ ! -z "$result" ]; then
echo "Domain: $domain"
echo "$result"
echo "-------------------------"
fi
done
就我而言,这返回了四个设置:
Domain: com.ampl.ide.rcp.product
NSAutomaticDashSubstitutionEnabled = 0;
-------------------------
Domain: com.apple.iBooksX
TSWPAutomaticDashSubstitution = 1;
-------------------------
Domain: com.apple.iChat.inputLine
automaticDashSubstitutionEnabled = 0;
-------------------------
Domain: org.tempel.findanyfile
NSAutomaticDashSubstitutionEnabled = 0;
-------------------------
更改这些的一般格式如下:
defaults write [Domain] [Key] [Value]
因此,您可以像这样更改设置(根据需要将布尔值设置为 true(“1”)或 false(“0”)。当然,在更改任何内容之前,您应该注意初始设置。
defaults write com.apple.iBooksX TSWPAutomaticDashSubstitution -bool false
运行上述代码按预期更改了目标设置,但并未解决未命令的破折号替换的根本问题。以下命令可单独使用某些关键字搜索相关域中的设置,但在我看来,我看到的行为已被硬编码到 PowerPoint 中。
defaults read com.microsoft.Powerpoint | grep -i 'dash'
defaults read com.microsoft.Powerpoint | egrep -iR 'dashsub'
我仍在寻找解决办法。
此问题已通过 PowerPoint 使用“帮助”>“反馈”报告给 Microsoft,如果您愿意支持产品更新,也可以这样做。