sublime 对单词转换有三个操做:upper_case
,lower_case
和title_case
, 可是奇怪的是前两个都有快捷键,可是第三个却没有,这一点不能忍。可是默认配置里甚至都没有设置它,要怎么改?python
要给 title_case 设置快捷键的第一个问题就是,咱们得知道这个操做的名字叫什么,这样才能修改用户设置的快捷键。sublime-text
打开 console, 让它打印出每个操做的命令:数组
sublime.log_commands(True)
如今去Edit
菜单下面选择title case
, 而后 console 里面就会把这个操做打印出来:app
title_case
知道了名字,那设置起来就好办了:函数
// User/Default(OSX).sublime-keymap [ // ... { "keys": ["super+k", "super+t"], "command": "title_case" }, ]
既然学会了,那干脆把调出User/Default(OSX).sublime-keymap
这个设置的操做也设置一个快捷键好了。点preference/key binding -user
, 而后 console 里就会显示这个操做:this
command: open_file {"file": "${packages}/User/Default ($platform).sublime-keymap"}
那就是说这个操做的名字叫作open_file
, 参数是后面这些,那去设置一下:插件
{ "keys": ["super+k", "super+s"], "command": "open_file", "args": { "file": "${packages}/User/Default ($platform).sublime-keymap"} },
如今要改快捷键就能够用快捷键super+k,super+s
了。code
而后就能够轻松地哪里想改改哪里了。orm
关闭当前标签用 cmd + w 就好了,因此每一个 tab 的关闭键对我都可有可无了,由于我历来不会用鼠标去点。可是我发现"关闭其余标签"这个动做却没有快捷键。这个动做在默认的快捷键设置里面也没有。因此第一步就是找到这个动做的名字是什么。前面提到了,在 console 敲入:token
sublime.log_commands(True)
而后点右键点击"close other tabs", 而后就会在 console 里面看到原来这个动做的名字叫作"close-others-by-index"。可是不幸的是这个操做不能直接设置快捷键,为何呢?由于这个操做须要当前的 group 和 index 做参数。group 指的是所在的屏(若是没有分屏的话,当前的 group 就是0),index 指的是当前标签在当前屏的第几位。
咱们首先须要写一个插件: Tools/developers/new plugins
// closeOthers.py import sublime, sublime_plugin class closeOthersCommand(sublime_plugin.TextCommand): def run(self, edit): window = self.view.window() group_index, view_index = window.get_view_index(self.view) window.run_command("close_others_by_index", { "group": group_index, "index": view_index})
这段 python 代码就是获取了 group 和 index 的值,而后把这俩值做参数传给close_others_by_index
这个操做。
保存好以后,再去自定义快捷键:
{ "keys": ["ctrl+w"], "command": "close_others" }
注意这里的 command 必须是close_others
, 由于咱们保存的 python 文件的名字叫作closeOthers.py
。这样的话,"ctrl+w"按下就至关于调用了closeOthers.py
, 传入当前的 group 和 index 值, 实施了 close_others_by_index 的操做。
参考:
说到分屏,可能大多数天天都在用。可是我有个很不爽的地方,在用 MacBook Air 的时候,屏幕过小了,老是要在左右屏之间拉来拉去。这时候若是除了对半分以外,还有1/9分和9/1分那就行了,这样的话就能够专心看左边/右边的内容了:
{ "keys": ["super+alt+["], "command": "set_layout", "args": { "cols": [0.0, 0.11, 1.0], "rows": [0.0, 1.0], "cells": [[0, 0, 1, 1], [1, 0, 2, 1]] } }, { "keys": ["super+alt+]"], "command": "set_layout", "args": { "cols": [0.0, 0.88, 1.0], "rows": [0.0, 1.0], "cells": [[0, 0, 1, 1], [1, 0, 2, 1]] } }
我看了一下,这两个快捷键原本是用来折叠函数等代码块的,这个我用不着,要折叠直接点那个 caret 可能方便点,直接就覆盖了。
cmd+d 这个快捷键能够用来逐个选择相同单词,在须要重命名数量很少的变量的时候能够用它,特别灵活。
cmd+ctrl+g 用来对相同单词作全选,正由于是全选,可能也不够灵活,视状况而定。
cmd+shift+l 多行分裂,鼠标选择多行,而后在每行的最后加上了光标。可能能够在每行最后添加多行注释?
option+mouse 拉取选择竖行。
一个练习,把下面的 the 改为首字母大写。
The name
The name
The name
The name
The name
一、cmd+d 不用说,逐个选择
二、cmd+ctrl+g 的话,要注意若是页面里面还有其余的 the 单词,可能会误伤。
三、cmd+shift+l 先获取每行行尾的光标,而后 cmd+<-,修改 t
四、option+mouse 直接往下拉一列
五、在选中 the 单词以后,也能够用 convert case。
在设置文件语法,跳转到其余文件跳转到函数、CSS 选择器(cmd+r)的时候,能够选择 cmd+p 或者 cmd+shift+p。
平时在写 if/else、fun 代码块的时候其实就会有代码提示的。除此以外,还能够自定义代码块。
举个例子,设置一个 iife 的代码片断,tools->new snippets,跳出这个:
<snippet> <content><![CDATA[ Hello, ${1:this} is a ${2:snippet}. ]]></content> <!-- Optional: Set a tabTrigger to define how to trigger the snippet --> <!-- <tabTrigger>hello</tabTrigger> --> <!-- Optional: Set a scope to limit where the snippet will trigger --> <!-- <scope>source.python</scope> --> </snippet>
把下面的 tabTrigger 取消注释,hello->iife,而后把 content 的内容改一下,变成这样:
<snippet> <content><![CDATA[ (function () { $1 }) ]]></content> <!-- Optional: Set a tabTrigger to define how to trigger the snippet --> <tabTrigger>iife</tabTrigger> <!-- Optional: Set a scope to limit where the snippet will trigger --> <scope>source.js</scope> </snippet>
中间那个$1
的意思就是光标会在那儿,而后下面的<scope>source.js</scope>
就是只会在js 文件里面生效。
这是个插件,用来快速添加文件,在此以前我一直都是在 zsh 里面 touch 来添加文件的,由于在 sublime 里面太慢了,直到有了这个插件。
安装好这个插件以后,cmd+option+n, 而后下方会有个框来输入文件的名字,也能够加路径,若是输入的路径是原来没有的话,那么就会新建。
// turn let app = item1 let getcha = item2 let aswgwygwubd = item3 // int o let app = item1 let getcha = item2 let aswgwygwubd = item3
选中,ctrl+option+]
gist 是一个保存和分析 snippet 的地方,若是有什么经常使用的代码段,能够保存在那边。与其开个页面到 gist 那边复制粘贴,不如选择直接在 sublime 里面获取和保存代码段。
在 gist 的设置里面把 token 填进去就至关于和 gist 创建了联系,以后要建立、抓取gist的话,能够用 cmd+shift+p 来搜索,在里面选择 create public gist等等。
这是个插件,用来快速生成注释块,用在函数、类、变量以前的时候还会有一些智能提示。好比说:
function introYou (name, age) { return name + age } // add /** below that function and 获得这个结果,光标在第一个 type上。 /** * @param {[type]} * @param {[type]} * @return {[type]} */ function introYou(name, age) { return name + age }
cmd+j 能够把多行连成一行。比方说,
var arr = [ one, tow, three, four ]
光标放在左括号,按几下 cmd+j, 数组就变成单行显示了。