使用程式碼片段外掛程式¶
程式碼片段 被預設用 EmEditor Professional 安裝。該外掛程式讓您能快速地插入單字以及短語。程式碼片段通常是讓您可以插入到文檔中的文字片段,它也可以包含一般文字,占位符,shell code,巨集,或規則運算式來轉換文字以及各種內置和使用者定義的參數。在這個程式碼片段外掛程式中,您可以創建兩種類型的項目 - 程式碼片段以及巨集。
要使用 程式碼片段 外掛程式,點擊 外掛程式 欄中的
。或在 工具 功能表下,指向 外掛程式,然后點擊 程式碼片段,便會出現 程式碼片段 自訂顯示條。
右擊程式碼片段顯示條會顯示下列選項:
插入 | 插入被選取的程式碼片段。 |
編輯 | 編輯被選取的程式碼片段。 |
選擇程式碼片段 | 顯示一個對話方塊,讓您能輸入一些字元來選擇要插入的程式碼片段。 |
新增程式碼片段 | 創建一個新的程式碼片段。 |
新增巨集 | 創建一個新的巨集。 |
新增資料夾 | 創建一個新的資料夾。 |
上移 | 把選取的程式碼片段在清單上往上移動。 |
下移 | 把選取的程式碼片段在清單上往下移動。 |
刪除 | 刪除被選取的程式碼片段。 |
刪除全部 | 刪除全部程式碼片段。 |
導入到該資料夾 | 把程式碼片段導入到該資料夾中。 |
導入到根資料夾 | 把程式碼片段導入到根資料夾中。 |
導出該資料夾/項目 | 導出所有在該資料夾中的程式碼片段到指定的目標中。 |
導出全部 | 導出所有程式碼片段到指定的目標中。 |
全部重設 (導入預設) | 重設所有程式碼片段并導入預設程式碼片段清單。 |
觸發鍵 | 顯示或隱藏觸發鍵。 |
組態 | 顯示或隱藏組態。 |
外掛程式屬性 | 顯示外掛程式屬性。 |
名稱 | 按名稱排列。 |
類型 | 按類型排列。 |
文字 | 按文字排列。 |
提示 | 按提示排列。 |
觸發文字 | 按觸發文字排列。 |
升序 | 按升序排列。 |
降序 | 按降序排列。 |
自動排列 | 自動排列程式碼片段。 |
屬性 | 顯示被選取的程式碼片段或程式碼片段資料夾的屬性。 |
程式碼片段外掛程式屬性¶
要調整程式碼片段外掛程式屬性,右擊外掛程式欄中的程式碼片段外掛程式按鈕,選擇屬性。 自訂顯示條位置 設置自訂顯示條位置。 后臺運行 運行程式碼片段繼續運行即使您關閉了程式碼片段自訂顯示條。 預設捷徑 指定預設捷徑;初始的預設捷徑是 TAB。 詳細程度 調整提示的詳細程度。 延時 調整在一個提示出現之前的時間。 「添加」按鈕 添加一個參數并為它指定一個值。 「刪除」按鈕 刪除一個參數。 命令 列出可用的命令。 (「快顯功能表」或「選擇程式碼片段」) 按下新的快速鍵 讓您能為選取的命令輸入快速鍵。 目前的鍵 被分配給被選取的命令的目前的鍵。 描述 對被選取的命令的說明。 「分配」按鈕 分配快速鍵給目前的被選取的命令。A 「刪除」按鈕 刪除目前的被選取的快速鍵。一般頁面¶
全局參數頁面¶
鍵盤頁面¶
程式碼片段資料夾屬性¶
要調整每一個程式碼片段資料夾的屬性,在程式碼片段自訂顯示條中的一個資料夾上右擊,選擇「屬性」。 名稱 指定程式碼片段資料夾名稱。 僅在啟用下列組態時使用自動完成 指定要自動完成的組態。 程式碼片段 設置要用來編輯程式碼片段的組態。 巨集 設置要用來編輯巨集的組態。一般頁面¶
組態頁面¶
程式碼片段屬性¶
要調整每一個程式碼片段屬性,在程式碼片段自訂顯示條中的一個程式碼片段上右擊,選擇「屬性」。 名稱 指定程式碼片段資料夾名稱。 觸發文字 為程式碼片段指定觸發文字。 快速鍵 為程式碼片段指定快速鍵。 提示 為程式碼片段指定快速鍵。 類型 指定類型 (程式碼片段或巨集) 。 文字 指定程式碼片段的文字/ 編輯 讓使用者能在 EmEditor 視窗中編輯程式碼片段。 僅在啟用下列組態時使用自動完成 指定要自動完成的組態。 程式碼片段 設置要用來編輯程式碼片段的組態。 巨集 設置要用來編輯巨集的組態。一般頁面¶
組態頁面¶
程式碼片段語法¶
純文字¶
程式碼片段包括任何您想要插入到文檔中的純文字。要編寫純文字,大部分的字元都可以使用,然而,如果您想要包括 \,$,或 ` 到您的純文字中,它們必須被轉義為 \\,\$,以及 \`。
占位符¶
在您插入一個程式碼片段后,游標位置會在占位符之間跳轉,按 TAB 鍵會跳到下一個占位符。
你可以在程式碼片段中將這些占位符定義為 ${n:default},其中 default 是插入片段時首先出現的預設值。若沒有預設值,可以省略 {},讓占位符顯示為 $n,其中 n 為 0 到 9 之間的整數。使用者插入片段後,游標的第一個位置在 $1,按 Tab 鍵會將占位符前移到下一個預留位置 $2、$3 等。最後一個占位符為 $0。
例如,下列的程式碼片段會在 HTML 中插入一個超連結,並且一開始的游標位置是 $1。當游標在 $1 處時,如果使用者按 TAB 鍵,游標會跳到 $2 處,然後到 $0。
<a target="$1" href="$2">$0</a>
程式碼片段能包括預設數值。下面顯示程式碼片段用一個預設值插入一個超連結。
<a target="${1:_blank}" href="${2:url}">$0</a>
你能在一個預留位置中再包含一個預留位置。下列程式碼片段用選取的目標參數插入一個超連結標籤。使用者能決定是否覆寫參數,刪除它,或再次按 TAB 鍵前進道下一個預留位置處。
<a ${1: target="${2:_blank}"} href="${3:url}">$0</a>
鏡像¶
如果你用相同的預留位置索引,所有這些預留位置的數值都會變為相同或被鏡像。下列程式碼片段插入一個 for 循環。在這個情況下,數值 i 是預留位置 $2 的預設值,並且相同索引中的預留位置被用在其他兩處地方。當游標在 ${2:i} 處時,變更 i 的數值會被鏡像到其他地方。
for( ${1:int} ${2:i} = ${3:0}; $2 != ${4:10}; $2++ ){
$0
}
轉換¶
你可以使用規則運算式和取代格式,將一個預留位置的值轉換為另一個。語法為:${n/regexp/replace_format/option},其中:
n:預留位置的索引
regexp:要搜索的規則運算式
replace_format:取代格式
option:
i:忽略大小寫
g:全局選項
下面的範例會把第一行輸入的字元複製到第二行,但會將第一個字元大寫。
$1
${1/./\U\0/}
預定義參數:¶
$1:預留位置 1
$2:預留位置 2
$3:預留位置 3
$4:預留位置 4
$5:預留位置 5
...:...
$9:預留位置 9
$0:最後一個預留位置
${n:default}:帶預設文字的第 n 個預留位置
${Path}:檔案的完整路徑名。
${Dir}:目前的檔案的目錄名。
${Filename}:不含副檔名的檔案名。
${FilenameEx}:含副檔名的檔案名。
${Ext}:檔案副檔名。
${LineText}:游標所在行的文字。
${WordText}:游標所在處的單字。
${SelText}:所選文字。
${CurCol}:游標的邏輯列號。
${CurLine}:游標的邏輯行號。
${Date}:今天的日期。
${Time}:目前的時間。
${Charset}:字元集(用於 HTML meta 標籤)。
${TabSize}: Tab寬度。
${IndentSize}:縮排寬度。
${AutoIndent}:自動縮排開啟為 1,否則為 0。
${UseSpacesForTabs}:「用空格代替 Tab」開啟為 1,否則為 0。
${AppVersion}:EmEditor 的版本。
${PluginVersion}:Snippets 外掛程式的版本。
${TM_FILENAME}:同 ${FilenameEx}。
${TM_CURRENT_LINE}:同 ${LineText}。
${TM_CURRENT_WORD}:同 ${WordText}。
${TM_DIRECTORY}:同 ${Dir}。
${TM_FILEPATH}:同 ${Path}。
${TM_LINE_INDEX}:同 ${CurCol}。
${TM_LINE_NUMBER}:同 ${CurLine}。
${TM_SELECTED_TEXT}:同 ${SelText}。
${TM_SOFT_TABS}:同 ${UseSpacesForTabs}。
${TM_TAB_SIZE}:同 ${TabSize}。
${PickFullPath,title,filter}:所選檔案的完整路徑名。title 為對話方塊標題,filter 的格式為:文字檔案|.txt|所有檔案|.*||。
${PickRelativePath,title,filter}:所選檔案的相對路徑名。title 為對話方塊標題,filter 的格式為:文字檔案|.txt|所有檔案|.*||。
${PickColor}:所選顏色的 RGB 值。
${DefColor}:最近選擇的顏色的 RGB 值。
你也可以建立自訂參數,形式為 ${parameter_name},其中 parameter_name 不在上述預定義清單中。當使用新的使用者參數時,會快顯對話方塊讓你輸入新值,除非該參數的值已儲存在外掛程式屬性的「全局參數」頁面。
Shell 程式碼¶
你可以定義一個 Shell 程式碼來運行控制臺應用程式,並將字串傳遞給其標準輸入。控制臺應用程式的標準匯出和標準錯誤會被重定向到文檔的游標位置。Shell 程式碼必須按以下格式指定:
`- appname
stdin1
stdin2
...
`
如果結果字串以換行符(CR、LF 或 CR+LF)結束,換行符會被移除。例如,下面的片段會以大寫形式插入 ${name} 參數的內容。
`- powershell -
# prompts for name then echos the hello greeting
\$name = "${name}".ToUpper()
"Hello \$name!"
exit
`
如果你不想解析片段參數,可以這樣寫:
`!- appname
stdin1
stdin2
...
`
如果你想運行命令提示符中的命令,可以定義傳給命令提示符(cmd.exe)的 Shell 程式碼,格式如下:
`#cmd shell_code`
你指定的值會以以下形式傳給 cmd.exe:
%COMSPEC% /c shell_code
控制臺應用程式的標準匯出和標準錯誤會被重定向到文字文檔的游標位置。例如,下面的片段會插入目前的資料夾的清單。你可以在每個片段中包含任意數量的 Shell 程式碼。
`#cmd DIR`
巨集¶
你可以在片段中以如下形式包含一個巨集:
`# `
第一個字元 # 表示這是一個巨集,而不是 Shell 程式碼。如果使用 JavaScript 之外的 ActiveScript(如 VBScript、PerlScript、PHPScript 或 RubyScript),你需要用以下方式定義語言:
`#language= `
例如,如果你希望使用 VBScript,應寫作:
`#language="VBScript"... `
Interface 對象用於在片段與 EmEditor 巨集引擎之間傳遞值。下面的範例會將剪貼簿的內容插入到游標位置。
The clipboard contains `# Interface.write( clipboardData.getData("") );`.
Interface.write() 方法將巨集的結果傳回片段。你也可以使用 Interface.writeln(),在結果末尾添加歸位和換行(CR+LF)。你可以在每個片段中包含任意數量的巨集。
預設值、Shell 程式碼或巨集中的參數¶
預留位置的預設值可以包含參數、Shell 程式碼或巨集。下面的片段在存在選擇時,插入一個
標籤,並將所選文字放在
與
之間。<p>${0:${SelText}}</p>
Shell 程式碼和巨集也可以在其程式碼或巨集中包含參數。下面的片段會顯示一個對話方塊,讓使用者為 ${name} 參數輸入一個值以繼續。
`# var s = "${name}";
for( var i = 0; i != 5; i++ ){
Interface.writeln( s );
}
`
你需要註意,所有 \、` 和 $ 前都必須加上一個 \。例如,下面的片段會插入 C:\Program Files\EmEditor。
`# Interface.writeln( "C:\\\\Program Files\\\\EmEditor" ); `
這是因為反斜杠必須寫成 \,而 JavaScript 也會將反斜杠轉換為 \。結果就是,一個反斜杠會變成四個反斜杠(\\)。
如果你不希望反斜杠被轉換,並且不需要在 shell 程式碼或巨集中包含任何參數,那么可以在程式碼開頭加入一個感嘆號(!)。也就是說——在 shell 程式碼中,你可以寫作 `!...`,在巨集中,你可以寫作 `!#...`。因此,前面的範例可以覆寫為:
`!# Interface.writeln( "C:\\Program Files\\EmEditor" ); `
提示¶
按 F6 鍵或 ESC 鍵來把鍵盤焦點設回到編輯器中。
您可以通過右擊 外掛程式 工具列上的外掛程式按鈕,選擇 屬性,調節自訂顯示條位置。位置可以是編輯器頂部,底部,右邊或左邊。