1. 參考文檔
關(guān)于本文的參考文檔:
- 少數(shù)派: 像納博科夫?qū)懶≌f(shuō)一樣寫(xiě)代碼,Mac App Store 年度應(yīng)用:SnippetsLab
- 官網(wǎng)地址: SnippetsLab官網(wǎng)
2. Snippetslab主要功能
Snippetslab 不是一款傳統(tǒng)意義上的代碼編輯器,它的設(shè)計(jì)從頭到尾都透著一股濃濃的為碎片化而生的味道。它所面向的不是連續(xù)的編輯一個(gè)完整程序的情景,而是將一個(gè)程序組件一個(gè)個(gè)拆分出來(lái)編寫(xiě)的情景。
在這種情景下,你可以非常碎片化的編寫(xiě)程序,并且可以快速的將代碼調(diào)用到各個(gè)其他的程序上。而Snippetslab做的就是將這些代碼收集在一起,讓你可以快速搜索并調(diào)用,將一個(gè)個(gè)小的程序片段快速的組合。
SnippetsLab 的終極目的就是將你容易遺忘在電腦角落中的各種代碼片段收集在一起,構(gòu)建成你個(gè)人的巨大的代碼片段庫(kù)。隨著你編寫(xiě)與收集的代碼片段越來(lái)越多,你的私人片段代碼庫(kù)也就積累的越來(lái)越多,你的可用代碼也就越來(lái)越多,結(jié)合它的快速搜索和資料庫(kù)結(jié)構(gòu),將能夠極大的幫助你的程序構(gòu)建(雖說(shuō)網(wǎng)上的代碼庫(kù)肯定更大,但用自己整理的代碼不是更方便容易嗎)。
同時(shí),SnippetsLab 支持 iCloud,這意味著你可以在多臺(tái)設(shè)備上快速同步。
3. Snippetslab主要界面
我們平時(shí)所用的代碼編輯器都是直接顯示一個(gè)單純的編輯界面,最后都是保存在我們所選擇的目錄下。而 Snippetslab 則是使用了類(lèi)似 Ulysses 的三段結(jié)構(gòu):
- 左側(cè):文件夾目錄(包括文件夾、智能組、標(biāo)簽)
- 中間:當(dāng)前文件夾下的文件目錄
- 右邊:文件內(nèi)容界面,標(biāo)準(zhǔn)的編輯器界面,支持語(yǔ)言高亮。
Snippetslab左側(cè)的文件夾目錄查看分為兩種模式:
- 文件夾與智能組:文件夾可以包含子文件夾
- 標(biāo)簽
我感覺(jué)標(biāo)簽與文件夾共存的這種設(shè)計(jì)很方便。
3.1. Snippetslab的Snippets與Fragment特殊結(jié)構(gòu)
在 Ulysses 式架構(gòu)之外,Snippetslab 還加入了一個(gè)新的管理層級(jí) —Fragment,即是在一個(gè)文檔(即代碼片段Snippets)里再加入低一層級(jí)的標(biāo)簽分頁(yè)(即Fragment),如下圖所示:

更多詳細(xì)的操作,參見(jiàn):Snippets and Fragments
3.1.1. 新引入的Fragment有什么用呢?
在Snippetslab官方的文檔中說(shuō)了這幾個(gè)用處:
- A class header and its implementation
- Some HTML code and its JavaScript/CSS counterparts
- Different solutions to one problem【針對(duì)一個(gè)問(wèn)題的不同解決方案】
我個(gè)人而言,覺(jué)得【針對(duì)一個(gè)問(wèn)題的不同解決方案】最有用。
3.2. Snippetslab的代碼注釋
同時(shí) Snippetslab 考慮到了代碼備注的需求,支持在代碼文件中添加 Notes 并以置頂形式備注懸浮在編輯窗口上方。
默認(rèn)情況下,如果當(dāng)前片段沒(méi)有注釋?zhuān)瑒t注釋字段是隱藏的。要添加注釋?zhuān)?qǐng)單擊【圓圈里面有個(gè)加號(hào)】按鈕,然后選擇添加注釋。
4. Snippetslab強(qiáng)大的菜單欄助手【Assistant】
Snippetslab 的野心不僅在于做一個(gè)普通的代碼管理器,它的目標(biāo)是要成為你寫(xiě)程序時(shí)的第二大腦,于是它在菜單欄常駐了一個(gè)強(qiáng)大的菜單欄助手,如下圖的錐形燒杯圖標(biāo)。

點(diǎn)開(kāi)Snippetslab 的菜單欄助手的錐形燒杯圖標(biāo),我們可以發(fā)現(xiàn)它是分成兩個(gè)部分的,分別是作為搜索管理的 搜索 和編寫(xiě)收集新代碼的 新建。
4.1. Assistant的搜索功能
激活SnippetsLab Assistant后,您可以立即開(kāi)始鍵入內(nèi)容以搜索所有片段。默認(rèn)的搜索范圍是所有片段,但是還可以指定具體的搜索規(guī)則。
如果要更改搜索規(guī)則,請(qǐng)單擊搜索欄左側(cè)的放大鏡按鈕,然后從下拉菜單中進(jìn)行選擇。
搜索到結(jié)果以后,可以進(jìn)行下列操作:
| 實(shí)現(xiàn)的效果 | 操作的方式 |
|---|---|
| 復(fù)制到剪貼板 | 單擊它或按 Enter鍵 |
| 在主窗口中開(kāi)啟 | 按住Option鍵單擊它或按 Option-Enter |
| 快速瀏覽 | 雙擊它或按→(要關(guān)閉快速外觀彈出框,請(qǐng)按←) |
當(dāng)您單擊摘要或按時(shí)執(zhí)行的操作Enter稱(chēng)為主要操作,它應(yīng)該是最常用的操作。要自定義主要操作,請(qǐng)選擇【SnippetsLab】 > 【首選項(xiàng)】 -> 【菜單欄助手】,然后從“首選操作”下拉菜單中選擇一個(gè)項(xiàng)目。

4.2. 過(guò)濾Assistant搜索的結(jié)果
4.2.1. 遇到的問(wèn)題:
對(duì)于搜索操作:默認(rèn)情況下,SnippetsLab將顯示所有包含關(guān)鍵字的代碼段,無(wú)論它們可能使用哪種語(yǔ)言,文件夾或標(biāo)簽。
但是,很多時(shí)候包含關(guān)鍵字的代碼片段太多了,如果可以對(duì)搜索結(jié)果進(jìn)行過(guò)濾,就能更加快速準(zhǔn)確地找到所需的內(nèi)容。
例如,您可以在特定的文件夾或某些特定的標(biāo)簽中找到具有特定語(yǔ)言的代碼片段。
4.2.1. 添加過(guò)濾器的方法
SnippetsLab提供了三種類(lèi)型的過(guò)濾器:文件夾,標(biāo)簽和語(yǔ)言。
- 單個(gè)過(guò)濾器
在搜索查詢(xún)中添加in:以打開(kāi)過(guò)濾器菜單,您可以在其中選擇特定的文件夾,標(biāo)簽或語(yǔ)言。這是一種方便的方式,可以完全根據(jù)需要獲取結(jié)果。 - 多個(gè)過(guò)濾器
您可以添加多個(gè)in:條件來(lái)進(jìn)一步縮小結(jié)果范圍。例如,過(guò)濾掉:僅使用“CSS”語(yǔ)言;同時(shí)在“Frontend Dev”文件夾中。如果存在多個(gè)過(guò)濾器,則僅滿足所有過(guò)濾器要求的摘要將包含在搜索結(jié)果中。
4.3. 使用Assistant新建代碼片段
這個(gè)比較簡(jiǎn)單,參見(jiàn)下圖就行了:

5. Snippetslab特色功能
5.1 支持大量的語(yǔ)法高亮
從支持的語(yǔ)言不斷擴(kuò)展的列表中進(jìn)行選擇,當(dāng)前版本提供420多種語(yǔ)言。
可以參考:What languages are supported?
5.2. 設(shè)置默認(rèn)語(yǔ)言
每次創(chuàng)建新代碼段時(shí)都必須選擇語(yǔ)言嗎?
SnippetsLab知道并解決了這個(gè)問(wèn)題。
SnippetsLab可以為每個(gè)文件夾選擇一種默認(rèn)語(yǔ)言,并且在該文件夾中創(chuàng)建的摘要將自動(dòng)使用該語(yǔ)言。默認(rèn)值為“純文本”。
要更改默認(rèn)語(yǔ)言,請(qǐng)右鍵單擊文件夾,然后在“默認(rèn)語(yǔ)法高亮”子菜單中選擇一種語(yǔ)言。注意:該菜單中僅顯示活動(dòng)語(yǔ)言。
5.2 支持MarkDown
從SnippetsLab 1.5開(kāi)始,您可以顯示MarkDown代碼段的呈現(xiàn)HTML文檔。
使用MarkDown的前提條件
要使用MarkDown功能,必須先將代碼段的語(yǔ)言設(shè)置為“MarkDown”。為此,請(qǐng)單擊位于編輯器面板左下方的語(yǔ)言選擇器,然后從下拉列表中選擇“MarkDown”。
更多參考:Markdown Snippets
5.3 支持很多中主題
SnippetsLab包含13個(gè)精心制作的主題。選擇您熟悉的配色方案。