Scite 簡單範本 |
|
假設您有多行以 tab 分隔的值。每一行會分割(tab 字元)為多個值。例如:
af Afghanistan za Afrique Du Sud al Albanie dz Alg�rie de Allemagne //ad Andorre ao Angola ai Anguilla aq Antarctique ag Antigua [...] fr France SELECTED [...] zw Zimbabwe
現在撰寫範本(可以是多行)。它必須出現在您的值之後。例如:
<option value="<1>" <3>><2></option>
腳本會自動複製範本並使用您的值填入。非常簡單
請仔細選擇範本(由上而下),然後執行腳本。產生的文字會插入在範本之後。例如:
<option value="af" >Afghanistan</option> <option value="za" >Afrique Du Sud</option> <option value="al" >Albanie</option> <option value="dz" >Alg�rie</option> <option value="de" >Allemagne</option> <option value="ao" >Angola</option> <option value="ai" >Anguilla</option> <option value="aq" >Antarctique</option> <option value="ag" >Antigua,Et,Barbuda</option> [...] <option value="fr" SELECTED>France</option> [...] <option value="zw" >Zimbabwe</option>
如果您覺得有用,這裡有腳本:
-- we assume the template definition is the current selection local template = editor:GetSelText() -- now duplicate and fill the template -- for each line before the template definition local lastline = editor:LineFromPosition(editor.SelectionStart)-1 local res = "" for index=0,lastline do local line = editor:GetLine(index) if string.len(line) > 2 and string.sub(line,1,2) ~= "//" then -- split tab separated columns local values = { ["<0>"] = index+1 } local i = 0 for p in string.gfind(line, "[^\t\r\n]+") do i = i+1 values["<"..i..">"] = p end -- fill template with values res = res..string.gsub(template, "(<%d+>)", function(p) return values[p] end) end end -- insert & select generated content editor:insert(editor.SelectionEnd, res) editor:SetSel(editor.SelectionEnd, -1)
我喜歡按 Alt+Shift+T 來執行腳本
command.name.33.*=Templatization! command.mode.33.*=subsystem:lua,savebefore:no,groupundo command.shortcut.33.*=Alt+Shift+T command.33.*=dofile $(SciteDefaultHome)/lua/templatization.lua
--Philippe