-string 中正确的反斜杠定义(macOS 默认通过 shell 写入)

Luk*_*uke 5 macos shell nsdictionary nsuserdefaults

ctrl+shift+up_arrow我正在尝试从终端设置 macOS 键盘快捷键 ( )。

从系统偏好设置手动创建它后,我发现这'^$\\U2191'就是我正在寻找的字符串。

所以:

defaults write com.hello.app NSUserKeyEquivalents -dict-add 'Test' -string '^$\\U2191'
Run Code Online (Sandbox Code Playgroud)

然而,这是我通过运行得到的defaults read com.hello.app NSUserKeyEquivalents

{"Test" = "^$\\\\\\\\U2191";}
Run Code Online (Sandbox Code Playgroud)

为什么每个反斜杠都会重复两次?如何正确输入两个反斜杠?

Luk*_*uke 2

事实证明,当涉及特殊字符时,plist从 cli 编辑文件的唯一方法是包含特殊字符本身。

\n\n
defaults write com.hello.app NSUserKeyEquivalents -dict-add \'Test\' -string \'^$\xe2\x86\x93\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

我不知道如何处理其他键,但PLIST 编辑器是在第一次手动创建快捷方式后快速获取这些值的好方法。

\n