本文同時備份在個人我的博客css
咱們常常須要對二維數組進行迭代,好比這樣:html
for(int x = 0; x < width; x++){ for(int y = 0; y < height; y++){ screen[x][y].setColor("black"); } }
過上一段時間,你又要寫這麼一段代碼:java
for(int i = 0; i < rows; i++){ for(int j = 0; j< columns; j++){ objects[i][j].update(); } }
若是你是程序員,那麼你理應厭煩:又一次重複得輸入for
,[]
,{}
……並且一個不當心,還很容易輸入錯誤。浪費時間尋找哪裏少了一個分號可不是你該作的事情。python
那麼不如來試試Snippet,一小段預先定義好格式的代碼塊。下次使用時,只需填入變化的部分。是的,就像填表同樣。程序員
爲了在Atom中使用Snippet,你須要首先定義好你的代碼塊格式。編程
Linux環境下,進入Edit->Snippets...,相對應的,在Windows下是File->Snippets...。數組
這其實是一個cson文件,格式以下:編程語言
'.source.python': # 在何種文件中使用這個Snippet 'python coding': # 對Snippet的簡短說明 'prefix': 'coding' # 輸入什麼前綴能夠觸發這個Snippet 'body': '# -*- coding:utf8 -*-\n' # Snippet的內容
第一行指定在何種文件中使用Snippet,你能夠在設置的Packages中的Installed Package裏搜索你要用的編程語言。
點擊對應的包,一般名字是:language-編程語言。在打開的包裏看看Scope是什麼。
經常使用的幾種以下:函數
文件後綴 | Scope |
---|---|
.c .h | .source.c |
.py | .source.python |
.java | .source.java |
.js | .source.js |
.css | .source.css |
.md | .source.gfm |
咱們都知道,若是你在python2中使用中文,在Python文件開頭,你須要添加這麼一段代碼,指定這個文件的編碼格式:編碼
# -*- coding:utf8 -*-
每次都要輸入,重複!那就把它變成一段Snippet吧:
'.source.python': 'python coding': 'prefix': 'coding' 'body': '# -*- coding:utf8 -*-\n'
這樣,在打開.py文件後,只需輸入coding
,而後按下Tab鍵,這段遍及着*
的代碼行就一會兒輸入成功了。
仍是在Python中,若是你想要添加一段像下面這樣的代碼,將你的.py文件劃分紅多塊的話:
#===================== # 數據爬取結束,開始匹配 #=====================
這時候,中間的文字是你每次都須要更改的部分,固然能夠在輸入其餘部分後再移到中間部分進行編輯,但咱們有更好的東西:
'.source.python': 'python coding': 'prefix': 'coding' 'body': '# -*- coding:utf8 -*-\n' 'section': 'prefix': 'section' 'body': '#=====================\n# $1\n#=====================\n$2'
注意,對同一後綴文件的Snippet,都得寫在一塊兒。
$1表示光標第一次所處的位置,按一下Tab後光標會移到$2所處的位置。
在這個例子中,輸入section而後按Tab,光標就自動出如今這段代碼的中間,輸入完中間部分,再按Tab,光標就會移動到這段文字的最後。你能夠繼續編碼,而無需浪費時間在移動光標上。
在上面,咱們使用\n
劃分多行,可是行數一多,這樣看起來就眼花繚亂了,咱們可使用"""
來編寫多行的Snippet:
'.source.java': 'iterate two dimension array': 'prefix' : 'for2' 'body' : """ for(int $1 = 0; $1 < $2; $1++){ for(int $3 = 0; $3 < $4; $3++){ $5[$1][$3]$6 } } $7 """
Atom的一個優點就是能夠同時修改文件的不一樣位置,Snippet天然支持這一點。
你會注意到,$1出現三次,這意味着一次鍵入,三處輸入。這樣不但快捷,還能保證命名一致。(錯也會錯成同樣的)。
map
函數。