尝试设置sublime-keymap,得到“错误尝试解析文件”消息

时间:2013-02-23 22:30:51

标签: xml json sublimetext2

在此页面上:http://www.sublimetext.com/docs/key-bindings它表示sublime-keymap文件是XML文件,可以使用该语法进行配置。但是,打开Default (OSX).sublime-keymap文件,我只看到以下内容:

[
]

这表明这不是XML,而是JSON。此外,从上一页复制和粘贴以下几行:

<binding key="ctrl+t,u" command="upperCase"/>
<binding key="ctrl+t,l" command="lowerCase"/>

然后保存文件,我收到一个错误:

Error trying to parse file: Unexpected trailing characters in ~/Library/Application Support/Sublime Text 2/Packages/User/Default (OSX).sublime-keymap:2:1

所以我猜测,事实上,sublime-keymap设置不是XML而是JSON。那么文档可能已经过时了?无论如何,我怎样才能设置一个像我上面所说的命令?我想要一个将所有选定文本转换为大写的命令。

谢谢!

3 个答案:

答案 0 :(得分:1)

打开默认键盘映射以查看正确的绑定格式:首选项 - &gt;键绑定 - 默认

[
  { "keys": ["ctrl+t","u"], "command": "upper_case" },
  { "keys": ["ctrl+t","l"], "command": "lower_case" }
]

答案 1 :(得分:1)

是的,该页面似乎已过时。 unofficial documentation提供更多信息(另请参阅here):

[
    { "keys": ["ctrl+shift+n"], "command": "new_window" },
    { "keys": ["ctrl+o"], "command": "prompt_open_file" }
]

所以很明显如何写出你需要的东西:

[
    { "keys": ["ctrl+t","u"], "command": "uppercase" },
    { "keys": ["ctrl+t","l"], "command": "lowercase" }
]

答案 2 :(得分:1)

ST2中有一个内置快捷键 - Ctrl + K,Ctrl + U(快速按Ctrl + K然后按Ctrl + U键),这样你就省去了定义新键盘图的麻烦。正如@d_rail指出的那样,你可以通过查看Preferences-&gt; Key Bindings-&gt; Default

来验证这一点。