關鍵字(縮寫)擴展的強大插件:SuperAbbrevs

9 views
Skip to first unread message

pi1ot

unread,
Mar 29, 2009, 2:40:18 PM3/29/09
to jEdit中文用户组
無論是稱做Live Templates(IntelliJ-IDEA)或Abbreviations(NetBeans,jEdit),達成的結果都
是相同的:輸入一個較短的關鍵字,再按特定按鍵(一般是Tab或空白鍵)後即擴展成較多的一連串文字。例如輸入sop再按Tab則擴展成
System.out.println("");。原本以為IntelliJ-IDEA的作法已經很有彈性了,沒想到SuperAbbrevs更是方
便。

要使用SuperAbbrevs當然是先由Plugin Manager安裝此插件,再把jEdit提供相同功能的Abbreviations的
Space bar expands abbrevs給關閉,以免互有干擾。

使用縮寫擴展
預設的擴展按鍵是Tab鍵,例如輸入class再按Tab,編輯區會出現原本建立好的樣板文字,並且游標會移到定義好的位置讓使用者輸入,輸入完畢後再
按Tab移到第二個定位處,繼續輸入再按Tab...重覆此步驟直到定位處皆擴展完畢;而要退回上一個欄位是按Shift+Tab。

請使用幾個縮寫關鍵字多試幾次就會清楚其操作方式了。另外,不同的檔案格式(jEdit稱為編輯模式)使用不同的縮寫設定,另外也可設定一組所有模式共
用的Global縮寫。可惜不能讓幾個Mode共用同一組設定,例如JSP與Java無法共用而必須分別設定。

建立縮寫的方法
用Plugin Options再進入SuperAbbrevs新增縮寫是標準作法,但步驟多了點,其實我們可以用下列步驟以快速建立縮寫關鍵字及其內
容:

1.先在編輯區裡輸入你要使用的縮寫關鍵字,例如:class
2.輸入好後按Shift+Tab,編修縮寫的對話窗就會出現供你編輯樣板內容


在樣板裡可以用$1、$2等來指定按Tab時的定位點,$1是第一個定位點,$3是第三個定位點,以此類推。這些定位定義能夠重覆多次,當相同的定義輸
入後,別的同名的定義會自動更新成輸入的內容。例如我們設定一個縮寫itar (Iterate Array):

for (int $1=0; i < $2.length; $1++) { $3 $4 = $2[i];
out.println("$2[" + $1 + "] = '" + $4 + "';"); $end }解釋上面的使用意義:

1.共定義了4個定位變數$1、$2、$3、$4
2.$1 供使用者輸入計數變數名,我們可以將$1加上額外屬性,讓游標進入$1位置時顯示此額外文字:${1:i} 或 ${1:counter}
或 ${1:計數器變數},提示文字依需求自行指定
3.$2 是陣列變數名稱
4.$3 是變數$4的型別
5.$4 是存放陣列一個元素的變數
6.$end是最後游標停留的位置
加入提示文字後的內容如下:

for (int ${1:計數器}=0; i < ${2:陣列}.length; $1++) { ${3:型別} ${4:元素變
數} = $2[i]; out.println("$2[" + $1 + "] = '" + $4 + "';");
$end }另外,還可以用${1=函數}的方法把輸入的文字做格式變化,例如下列產生get/set程式片段,其中的firstUp( )就是把輸
入文字的第一個字元轉成大寫:

/** * Getter function for the field $1 */ public ${2:Type} get
${1=firstUp(s)}() { return ${1:field};}/** * Setter function for the
field $1 */public void set${1=firstUp(s)}($2 $1){ this.$1 = $1;}轉換用函數主要
是放在C:\Documents and Settings\使用者\.jedit\SuperAbbrevsn
\abbrev_functions.bsh裡。

Reply all
Reply to author
Forward
0 new messages