使用Atom的Snippet加速編碼

本文同時備份在個人我的博客css

一個使用Snippet加速編碼的動圖示例

咱們常常須要對二維數組進行迭代,好比這樣: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

爲了在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

第一個示例:指定Python文件的編碼

咱們都知道,若是你在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出現三次,這意味着一次鍵入,三處輸入。這樣不但快捷,還能保證命名一致。(錯也會錯成同樣的)。

要注意的

  • Snippet很方便,但只有你用起來的時候才能加速你的編碼。要記得使用,直到肌肉有了記憶,天然而然地使用Snippet。
  • Snippet的介紹彷佛不是很重要,但安裝了其餘人的Snippet後,你須要這些介紹來進行區分,因此仍是要認真編寫的。
  • 保持開心,若是Snippet用起來感受不是爽而是痛苦,那就不要使用它。也許你會發現,這些重複的編碼能夠用其餘的東西來解決,好比map函數。
相關文章
相關標籤/搜索