字符串中正确的反斜杠定义(macOS默认通过shell写入)
我正在尝试从终端设置macOS键盘快捷键(字符串中正确的反斜杠定义(macOS默认通过shell写入),macos,shell,nsdictionary,nsuserdefaults,Macos,Shell,Nsdictionary,Nsuserdefaults,我正在尝试从终端设置macOS键盘快捷键(ctrl+shift+up\u arrow) 从系统首选项手动创建后,我发现'^$\\U2191'就是我要查找的字符串 因此: 然而,这是我通过运行默认值read com.hello.app NSUserKeyEquivalents得到的: {"Test" = "^$\\\\\\\\U2191";} 为什么每个反斜杠都要重复两次?如何正确地只输入两个反斜杠?对-string参数使用双引号(“)而不是单引号(”): defaults write com.
ctrl+shift+up\u arrow
)
从系统首选项手动创建后,我发现'^$\\U2191'
就是我要查找的字符串
因此:
然而,这是我通过运行默认值read com.hello.app NSUserKeyEquivalents
得到的:
{"Test" = "^$\\\\\\\\U2191";}
为什么每个反斜杠都要重复两次?如何正确地只输入两个反斜杠?对-string
参数使用双引号(“)而不是单引号(”):
defaults write com.hello.app NSUserKeyEquivalents-dict add'Test'-string“^$\\u219”
事实证明,对于特殊字符,从cli编辑plist
文件的唯一方法是包含特殊字符本身
defaults write com.hello.app NSUserKeyEquivalents -dict-add 'Test' -string '^$↓'
我不知道其他键是如何处理的,但在第一次手动创建快捷方式后,这是一种快速获取这些值的好方法。在大多数基于Posix的语言中,包括在MacOS上使用的语言中,反斜杠是一个保留字符 要让解析器打印反斜杠,需要输入两次反斜杠 一些脚本和实用程序会假定您需要文本打印,并插入双反斜杠来代替反斜杠,以便进行文本打印,而不是查找字符
您需要检查特定工具的文档。通常有一个选项可以关闭此功能。您是否亲自尝试过此功能?它对我不起作用,单引号/双引号不会改变任何内容。是的。使用单引号时,当您执行
默认值时,请阅读com.hello.app NSUserKeyEquivalents
您会得到{Test=”^$\U2191”}
。使用双引号插入时,结果是:{Test=“^$\\\U2191”}
defaults write com.hello.app NSUserKeyEquivalents -dict-add 'Test' -string '^$↓'