2017-08-28 61 views
1

到預覽可用這是我在崇高的文本3添加代碼片段:添加光標位置在崇高的文本3

<snippet> 
    <content><![CDATA[ 
document.write(); 
]]></content> 
    <tabTrigger> dw </tabTrigger> 
</snippet> 

的問題是如何在這個代碼添加光標位置? 謝謝。

+0

這裏「光標位置」是什麼意思?當你調用片段時光標結束了嗎? – OdatNurd

+0

的確如此:文檔。寫([cursor here]),現在,光標在最後。 – ISTech

回答

3

Sublime中的片段允許您選擇性地指定字段(製表位),以允許您交互地在片段中添加額外信息。

當片斷擴展你能夠標籤Shift + Tab鍵來回場之間,而當你按下Tab鍵在最後一個字段,該代碼段擴建完成。

此狀態在當前窗口的狀態欄中顯示,您將看到Sublime告訴您您所在的區域以及區域的數量。 Field 1 of 2

字段用$後跟一個數字來指定,Sublime按照它們的數字順序($1,然後$2等)跟隨字段。出於這個原因,重要的是你在你的代碼片段內容中輸入$作爲\$,以便Sublime知道它不是一個字段。

就是這樣說的,$0這個字段是特殊的,它指出了當代碼段擴展完成時光標最終應該結束的位置。如果$0未出現在代碼段中的任何位置,則Sublime的行爲就好像它是代碼段內容中的最後一件事情。

這就是它在上面的代碼片段中所做的事情,所以當代碼片段展開時,它將光標留在代碼片尾部,即;字符之後。

一個片段,如下面將代替離開光標paranthesis內,這樣就可以輸入你要插入到文檔中的內容:

<snippet> 
    <content><![CDATA[ 
document.write($0); 
]]></content> 
    <tabTrigger> dw </tabTrigger> 
</snippet> 

當這樣的規定,該代碼段有沒有「真正的「字段(只是特殊的」退出「字段),所以只要它展開,光標就在括號內,並且片段擴展完成。

根據你的使用情況,還可以實現用這樣的片段類似的東西:

<snippet> 
    <content><![CDATA[ 
document.write($1);$0 
]]></content> 
    <tabTrigger> dw </tabTrigger> 
</snippet> 

當您展開這個片段中,光標像以前放在括號內,但現在的狀況行會告訴你Field 1 of 2,因爲現在有兩個字段(你的顯式字段和「退出」在$0)。

這允許您鍵入填寫呼叫的值爲document.write,然後按標籤直接跳到行的末尾。我想推薦Unofficial Documentation on Snippets