首页 > 代码库 > Sublime-text 自定义快捷键攻略

Sublime-text 自定义快捷键攻略

    好吧.我承认今天很悲剧,本来上午就写好了这篇博文,发布之后,在自己的博文里怎么也找不到.

所以现在又重新写了一份.希望大家能顶一下吧...Nothing is better than your support !

你使用sublime text 的快捷键吗? Did you ever type in some keywords in "baidu" or in "google" to search some useful blogs about this theme for you ?

现在我来分享一下如何自己定义快捷键.这样,快捷键都是自己定义的.也不用老是抱怨说记不住快捷键什么的了.

首先我们要知道到底在哪里定义我们的快捷键.

打开 sublime text  (我使用的是sublime text 2) 如果你是 (sublime text 3) 没有关系,操作方法都是一样的.

找到 Preferences (选项)   我们发现里面有这样两个选项.

Key Bindings  -- Default  //表示系统默认的快捷键

Key Bindings -- User  //这里就是我们要自己定义的文件...


我们选择下面的那个 Key Bindings --User 这个选项.当然不是说你不能在上面的那个文件中定义快捷键.如果你是Sublime text 的高手,那么其实你不用看我这个分享了.由于那个默认的文件快捷键内容众多,如果你改了其中的一部分,发现程序报错了..但是你又找不到哪里错了,岂不是很悲剧...

那你肯定说,下面的那个文件  Default(Windows).sublime-keymap 什么东西都没有,我要怎么开始呢?

Yeah, this is why I write this blog . It‘s just for you ! haha ....

好了...我们要清楚,该文件是JSON格式的..大家应该对JSON数据类型并不陌生对吧..

在写这些快捷键的时候我们需要注意以下几点内容:

1.属性名必须使用双引号 " " (double quotes) 进行包裹.

2.该文件是 数组对象 即 [ {} , {} ,{} ... ].这种形式.

3.最后一个对象后面不允许有逗号(,) 出现.


记住这几点,我们就开始start from stratch 来进行我们快捷键的编写吧.

① [  ] 这是最外围的(square brackets).

 [

    //We can also use two forward slashes to make some comments here...

    { "keys": ["ctrl+k"], "command": "toggle_side_bar" }

好了,我们已经定义了一个我们自己的快捷键,我们来分析一下它.

keys 表示使用的快捷键组合形式. 这里是 ctrl+k 这个不用解释了吧.

command  表示的是我们要进行什么命令操作...当然,我们不能自己瞎写这些命令,需要参考Default 的里面的内容.

比如这里 toggle 表示的是开关的意思. side_bar  也就是左边的那个显示文件内容列表的侧边栏 ,连在一块toggle_side_bar 就是 对侧边栏进行显示或者隐藏的意思.

哈哈..原来是这样啊..

注意一点:花括号(curly brackets) 后面没有 逗号(comma).

[

    //We can also use two forward slashes to make some comments here...

    { "keys": ["ctrl+k"], "command": "toggle_side_bar" },

    { "keys": ["alt+l"], "command": "move", "args": { "by": "characters", "forward": true }}

]

再来看看这个,我们在上面的基础上又添加了一个快捷键.我们发现多了一个属性.

这个快捷键对象多了一个属性. args

args 表示命令需要的参数,这里很好理解,既然是要 "move",那么我到底该怎么移动呢? 这是个问题...

我们分析一下"by": "characters" 也就是按照字符进行移动, "forward": "true" 向前为真,连在一起就是按照一个字符一个字符向前(左)移动.

哦..原来是这样啊....

那你是不是能够推测假如我想按照单词进行移动,是不是 "words" 呢?

I should say maybe you are right.Just have a try and you can have a deep memory of the point and find something else only for you .

这里还是要注意一点,两个对象之间使用的是逗号(comma), 第二个对象里面的参数同样是对象形式出现的...


好了,这里就是一些简单的定义,我不能把所有的命令(command)都列出来吧...那样也没有必要,凡事有个度就好了.定义一些常用的快捷键,再多的话,那还要鼠标干嘛呢,对吧?

哈哈... 

Best wishes !