我正在尝试从终端设置macOS键盘快捷键(ctrl+shift+up_arrow
)。
在从系统偏好设置手动创建它之后,我发现'^$\\U2191'
就是我要找的字符串。
所以:
defaults write com.hello.app NSUserKeyEquivalents -dict-add 'Test' -string '^$\\U2191'
然而,这是我运行defaults read com.hello.app NSUserKeyEquivalents
得到的结果:
{"Test" = "^$\\\\\\\\U2191";}
为什么每个反斜杠重复两次?如何正确输入只有两个反斜杠?
4条答案
按热度按时间d7v8vwbk1#
事实证明,当涉及到特殊字符时,编辑
plist
文件的唯一方法就是包含特殊字符本身。我不知道其他键是如何处理的,但PLIST Editor是一个很好的方法,可以在第一次手动创建快捷键后快速获取这些值。
x8diyxa72#
为了添加到Luke's answer,我想出了如何设置一个包含F4键的热键:
1.进入系统设置→键盘→键盘快捷方式...→应用快捷方式。
1.手动添加您的快捷方式(例如注:这只是为了让你可以得到你按下的键的Unicode码位;一旦你有了它,你就可以自动化了。
1.读取您刚刚设置的快捷方式。
1.使用
defaults domains
查找应用程序的名称。例如,我在Chrome中添加了快捷方式,所以我需要使用的域是com.google.Chrome
。1.运行
defaults read com.google.Chrome NSUserKeyEquivalents
你应该得到这样的输出(其中“Whatever Tab You Set”将是一个类似于“New Tab”的菜单命令):
1.使用以下命令运行
zsh
:echo \\Uf707 | pbcopy
(注意bash
可能需要不同的语法)。剪贴板现在应该包含代表F4的特殊字符。1.运行
defaults write com.google.Chrome NSUserKeyEquivalents -dict-add "Whatever Shortcut You Set" -string '@~X'
注意:上面的
X
不是真正的“X”;这是字符,现在应该在您的剪贴板从步骤#4。对我来说,iTerm 2将其渲染为眼球,但这是因为U+F707
没有相应的可渲染字符。1.重新启动您刚刚设置的快捷方式的应用程序。你现在应该有快捷键F4设置为一个快捷键!
mccptt673#
-string
参数使用双引号(“)而不是单引号('):defaults write com.hello.app NSUserKeyEquivalents -dict-add 'Test' -string "^$\\U2191"
k7fdbhmy4#
在大多数基于Posix的语言中,包括MacOS上使用的语言,反斜杠是一个保留字符。
为了让解析器打印一个反斜杠,你需要输入两次反斜杠。
有些脚本和实用程序会假定您需要文字打印,并插入双反斜杠代替反斜杠,以便给予文字打印,而不是查找字符。
您需要查看特定工具的文档。通常有一个选项可以关闭此功能。