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, 數組就變成單行顯示了。