設定文件使用的緩衝區編碼為 UTF-8
[功能表] → Utilities → Global Options → jEdit → Encoding → Default character encoding = UTF-8
設定文件使用的格式為 Unix
[功能表] → Utilities → Global Options → jEdit → General → Default line separator = Unix(\n)
設定顯示區域使用的字型為支援 Unicode 的字型
將字型放在 Java 的 lib\fonts 資料夾,重新啟動 jEdit,即可在挑選字型的清單找到它。
[功能表] → Utilities → Global Options → jEdit → Text Area → Text Font = DialogInput
Java 以前不支援文字渲染,所以有些字型在舊版 jEdit 有字數過長時程式變慢的問題,建議使用 5.6 版。
如何 Ctrl + Y 復原
Ctrl + e,然後按 Ctrl + z。
不習慣的話,可修改 Shortcuts。
避免自動對齊功能使用 Tab 字元
[功能表] → Utilities → Global Options → jEdit → Editing → Change settings for mode → global defaults → Soft (emulated with spaces) tabs = (核取)
[功能表] → Utilities → Global Options → jEdit → Editing → Change settings for mode → Java → Use default settings
減少錯誤縮排
使用預設的:
[功能表] → Utilities → Global Options → jEdit → Editing → Mode Settings → Automatic Indentation = Full
設定為 Simple 的話,會連字元游標後面的空白或 Tab 都一起縮排,變成錯誤縮進。
避免按 { 字元時自動縮排
[功能表] → Utilities → Global Options → jEdit → Editing → Change settings for mode → global defaults → Indent width = 1
[功能表] → Utilities → Global Options → jEdit → Editing → Change settings for mode → Java → Use default settings
多行縮排
選取多行然後按 Tab 鍵,會整列增加縮排。
選取多行然後按 Shift + Tab 鍵,則是整列減少縮排。
縱向選取
按 Alt + \ 後,可用 Shift + 方向鍵 縱向選取,適合多行修改。
複合選取
按 Ctrl + \ 後,可用 Shift + 方向鍵 跳躍式選取不同區塊來修改。
複製當前行、移動當前行
這些功能放在 [功能表] → Macros → Edting 的 Duplicade Lin Belowe、Move Lines Down、Move Lines Up,請自行建立快捷鍵(Shortcut)。
程式碼片段
jEdit 也有像 Visual Studio Code 的 Snippets 功能,敲簡單幾個字後按 Tab 鍵,會轉換成程式片段。請到如下位置設定:
[功能表] → Utilities → Global Options → jEdit → Abbreviations
預設按空白鍵轉換,但必須勾選 Space bar expands abbrevs。
要修改成 Tab 鍵的話的話:
[功能表] → Utilities → Global Options → jEdit → Shortcuts → Expand Abbreviation = Tab
自訂語法高亮度關鍵字
進入 jEdit 所在資料夾,再修改 modes 裡面各語法的 xml 檔。
*.html 的 <style></style> 遇到含 : 字元的屬性就解析錯誤
jEdit 5.1.0 有這個問題,但 jEdit 5.2pre1 有解決。
可以考慮把 html.xml 裡面的如下語法給刪除:
<!-- stylesheet -->
<SEQ_REGEXP TYPE="MARKUP" DELEGATE="STYLE_TAG"
HASH_CHAR="<"><(?=STYLE\b)</SEQ_REGEXP>
套用第三方語法高亮度配色主題
jEidt 雖然能修改高亮度顏色,但資料與整個 jEdit 的組態檔放在一起,無法個別保存,不容易將自訂好的主題配色分享給他人套用。
透過 Plugins 下載 Editor Scheme 即可解決這個缺憾,可以自行製作多種主題配色,而且已內建多套主題配色。
顯示空白字元
用 Plugin Manager 下載 WhiteSpace。
記得到 Plugin Options 設定預設開啟,順便調整顏色。
取消 80 字元準線
[功能表] → Utilities → Global Options → jEdit → Text Area → Wrap guide = (不核取)
開啟行號
[功能表] → Utilities → Global Options → jEdit → Gutter → Line numbering = (核取)
設定行號的字型
[功能表] → Utilities → Global Options → jEdit → Gutter → Gutter font = DialogInput
啟用摺疊功能
[功能表] → Utilities → Global Options → Editing → Folding mode → indent
這會根據縮排來摺疊,速度快又實用。
設定為 explicit 是摺疊 {{{ 開頭和 }}} 結尾。
Folding markup
jEidt 有一套自己摺疊內容的語法,首先在文件開頭加入這段宣告:
<!--:folding=explicit:collapseFolds=1:-->
然後將想要摺疊起來的內容,用下面所示標記包起來,就可以摺疊了:
<!--{{{ 註解 -->
<!--}}}-->
關閉預設的緩衝區選擇器
[功能表] → Utilities → Global Options → jEdit → View → Show buffer switcher = (不核取)
頁簽式緩衝區選擇器
用 Plugin Manager 下載 BufferTabs。
[功能表] → Plugins → Plugin Options → BufferTabs → Enable BufferTabs by default = (核取)
設定頁簽式緩衝區選擇器的位置:
[功能表] → Plugins → Plugin Options → BufferTabs → Location on BufferTabs = top
啟用 Java Swing 外觀
[功能表] → Utilities → Global Options → Apperance:
1. Draw window borders using Swing look & fell = (核取)
2. Draw dialog box borders using Swing look & fell = (核取)
重新啟動 jEdit。
更換工具列圖示
將下載回來的 JAR 檔案放到 JRE 的 lib\ext 裡面。
例如 gnome_jedit_icons.jar 檔案。
手動調整程式視窗大小
修改 Documents and Settings\[User]\.jedit\perspective.xml:
WIDTH="800" HEIGHT="600"
取消自動備份
[功能表] → Utilities → Global Options → Autosave & Backuspan = (全部空白)
開啟檔案時預設為作用中文件所在資料夾
[功能表] → Utilities → Global Options → File System Browser → General→ Default path = Parent directory of current buffer
自動偵測與手動切換字元編碼
自動
在 [功能表] → Utilities → Global Options → Encodings → List of fallback encodings 輸入會用到的字元編碼,像是 Big5 和 UTF-16,並勾選 Auto-detect file encoding when possible。
手動
[功能表] → File → Reload with Encoding
可在 [功能表] → Utilities → Global Options → Encodings → Selected encoding(s) 設定可選的字元編碼。
由於 MS950 是 jEdit 必定可選的字元編碼 ,因此不用設定 Big5 和 GB2312,只要留 UTF-16 即可。預設使用 UTF-8 的話,也不用設定 UTF-8。
補充
jEdit 會記錄每個檔案自動偵測或手動切換後的字元編碼狀態,導致下次開始同一個檔案時,不再自動偵測正確的字元編碼,而是沿用上次使用的字元編碼。
Regular expressions 搜尋
() 捕獲群組與 $1 變數
勾選這項目,除了可以用正規式搜尋,還可以讓正規式多重匹配後,用 $1 代表結果。
比如有段文字:
PhelloAworldBR
在 Search for 用正規式的 () 多重匹配:
(P|A|BR)
在 Replcace with 輸入:
<$1>
在匹配結果前後加上 < 和 > 符號,這樣就會取代為:
<P>hello<A>world<BR>
$2 到 $9
如果有好幾組 () 匹配,可用 $2 到 $9 表示。
比如有段文字:
worldhello
在 Search for 用兩組正規式的 () 匹配,注意!要按照會找到的順序:
(world)(hello)
第一個找到的 world 會放在 $1,第二找到的 hello 會放在 $2。於是在 Replcace with 輸入:
$2 $1
便會取代為:
hello world
在 jEdit 開啟 URL 路徑格式的檔案
在 jEdit 按 Ctrl + O 開啟檔案時,會發現無法開啟 file:// 開頭、含 # & ? 符號的路徑。
這問題可以改用 [功能表] → Macros → Files → Open Path 解決,有需要用到的人,不妨將這功能設定快捷鍵(Shortcut)。
用網頁瀏覽器開啟正在編輯的 HTML 檔案
用 Plugin Manager 下載 Console。
先設定快捷鍵:
[功能表] → Utilities → Global Options → Shortcuts → Run Current Buffer
然後設定指令,在:
[功能表] → Plugins → Plugin Options → Console → Compile & Run → Set compiler/interpreter for edit mode: html → Interpreter → Use custom command
輸入:
$f
就能以預設的網頁瀏覽器開啟 HTML 檔案來檢視。
如果不想為此下載 Plugin 的話,可以自己寫個 Macro:
Runtime.getRuntime().exec("C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe " + buffer.getPath());
命名為 Run_Path.bsh,放在 jEdit 的 macros 資料夾裡,再建立快捷鍵即可。
直譯或執行正在編輯的 JavaScript 檔案
到 Plugin Manager 下載 Console。
先設定快捷鍵:
[功能表] → Utilities → Global Options → Shortcuts → Run Current Buffer
然後設定指令,以 Rhino 直譯 *.js 檔案為例,在:
[功能表] → Plugins → Plugin Options → Console → Compile & Run → Set compiler/interpreter for edit mode: javascript → Interpreter → Use custom command
輸入:
java -cp ".;%JAVA_HOME%\lib\rhino.jar" org.mozilla.javascript.tools.shell.Main -version 200 -encoding UTF-8 $f
就能按快捷鍵執行正在編輯的 JavaScript 程式碼。
也可以把直譯命列寫在批次檔,跟每個 JavaScript 程式碼放在一起,改成執行批次檔裡面的命令,這時輸入的是:
$d\run.bat
Docking 往左還是往右
如果平常縮起來,要用的時候才展開,那就往右靠!因為往左靠的話,會往右展開,這時 text area 也會往右邊挪移位置,導致原本關注好的閱讀文字失去焦點。往右靠,往左展開,不會造成 text area 的文字挪移,而是就地展開。
如果永遠展開的話,沒有往右展開的問題,加上為了增加空間讓 docking 展開,會把視窗尺寸拉長,這樣還能把 text area 往螢幕中間位置挪移,更方便看文字。
File System Browser 和 File Browser 的差別
File Browser 是 open file 或 save as 之類用的檔案對話視窗,用完會自動關閉。
File System Browser 是可以 dock 到側邊欄用的視窗,這樣就會一直停留在側邊欄,方便反覆操作。
然而,在 Utilities → Global Options → Docking 中,File System Browser 也是名叫 File Browser,只能說這是可以 dock 到側邊欄的 File Browser。
HyperSearch 和 Markers 還有 Registers
除了 File Browser 可以 dock 到側邊欄,HyperSearch Results、Markers、Registers 也可以!
HyperSearch Results 是搜尋內容時,產生一個清單,能直接看所有符合的搜尋結果,通盤了解該修改的情況,方便逐筆修改內容。然而,HyperSearch 出來的對話視窗,原本就不會點了自動關閉,而是一直留著,還可以視需要調整視窗大小、視需要拖曳來拖曳去放在不同位置,以免它擋到文字,或占用文字區域的空間,因此 dock 到側邊欄不見得比較好用。
Markers 像是書籤一樣,你可以把文字檔案的不同行數,加入到 Markers 清單中,以便先到某一行修改文字後,可以點一下清單中的行數,快速回到想要的行,尤其是要在特定好幾個行跳來跳去修改時,非常好用。這原本是在功能表操作,但可以 dock 到側邊欄,滑鼠移過去就能點來用,順手很多。
Registers 是複製貼上的內容檢視器,但沒那麼簡單,你可以在檢視器先修改複製的內容,在逐一貼上到想要的地方。這功能原本要點 Edit > More Clipboard > View Registers 叫出來,但也可以 dock 到側邊欄,滑鼠移過去點一下就能用。
內建的 QuickNotepad 非常邪惡
千萬不要用 QuickNotepad 打開任何檔案,它會把非 ASCII 字元編碼的檔案變成亂碼後儲存檔案,導致內容全毀!
QuickNotepad 是 jEdit 內建的 Plugin,然而,它並不是一款簡易型文字編輯器,而是快速筆記板,主要用來 dock 在側邊欄,隨手寫一些文字內容用的。
QuickNotepad 有個看起來像「開啟舊檔」的按鈕,但那更像是電玩遊戲的「讀取進度檔」,有 Save 1.txt、Save 2.txt、Save 3.txt⋯是專門給 QuickNotepad 讀寫資料用的檔案。因為那個按鈕叫做 Choose notepad file,而不叫 Open file,你只該用它來開啟 QuickNotepad 儲存的檔案,而不是用它開啟其它檔案來檢視。
用 QuickNotepad 來開啟舊檔的話,它會以 Windows 預設的 ASCII(Big5)編碼開啟檔案。如果你這個文字檔案使用 UTF-8,就會得到亂碼!然後在關閉 jEdit 時,因為 QuickNotepad 會自動把「進度存檔」儲存起來,於是把那堆亂碼寫入檔案,你這檔案的文字內容就全毀了~
因為這東西有個 Notepad 的字樣,非常誤導人,以為是簡易型的文字編輯器。如果你平常沒在使用這功能,不清楚它其實是用來做什麼的,哪天就會犯傻用它來開啟檔案,所以強烈建議按 Plugins → Plugin Manager 把 QuickNotepad 移除,不要留著它,以免哪天帶來無可挽救的災情。
但如果你經常一邊用 jEdit,又一邊開 Windows 記事本暫時保留一些待會要用的文字內容,那 QuickNotepad 還是不錯用的。只要平常有在用,知道這是怎樣的東西,就比較不會有犯傻用它來開啟檔案的,但還是要謹守這條原則:「死都別用它 Choose notepad file 的按鈕。」
提升 jEdit 啟動速度
先建立 jedit.exe -nogui 捷徑,放在開始功能表的「啟動」裡面,這樣每次開機就預熱執行,解決 jEdit 第一次啟動時間過長的問題。
再建立 jedit.exe -background 捷徑,用來執行 jEdit,這樣會常駐在背景處理程序,每次執行都秒開。
最後是用檔案關聯的方式開啟 jEdit 也能背景執行!使用登錄編輯程式,切換到 HKEY_CLASSES_ROOT\Applications\jedit.exe\shell\open\command,編輯裡面的字串,在 "%1" 前面加上 -background。然後搜尋所有用 jedit.exe 開啟的 xxx_auto_file,同樣在每個 "%1" 前面加上 -background。
properties
jEdit 設定過的資料,會永遠留在 properties 組態檔裡面。即使把設定回復到原先的狀態、或者移除 plugin,組態檔依然會保留這些用不到的設定。長期設定下來,properties 檔案會變大,裡面有三分之二以上都是用不到的設定⋯什麼設定都想按看看、什麼 plugin 都想下載用看看,那十分之九都是殘留的設定值也不誇張。
有潔癖的人,不妨每個階段,就保存一份 properties,以便日後還原到過去乾淨的狀態。
雖然檔案大小不會很大,20KB ~ 100KB,但設定筆數 1000 行以上,對啟動速度多少有影響。
沒隨便亂修改太多設定、也沒下載一堆 plugin 的話,正常應該 10KB 以下,400 行以下。超過的話不妨打開 properties 檔案看看,裡面是不是有一堆過去殘留下來的設定~
手動清除檔案游標位置
刪除 recent.xml 檔案。
備份整個設定檔
將 Documents and Settings\[User]\.jedit(Windows XP)或 [User]\AppData\Roaming\jEdit(Windows Vista)資料夾保存起來,以後再放回去即可。
Java 版本問題
使用 Java 14 或以上版號,跑 jEdit 5.6 或 jEdit 5.7,在點 jEdit 視窗標題列獲得駐點的情況下,將檔案拖曳進來,有高機率讓程式當掉。
使用 Java 20 以後的版本,遇到單行文字過長,會有卡頓的情形,甚至會整個卡死不動。
也就是說,到 jEdit 5.7 為止,不適合用最新的 Java,建議使用 Zulu 13.0.14。
希望預覽版的 jEdit 5.8 在正式推出後,有解決這問題,能用最新版的 Java 執行。
jEdot 版本問題
5.7 版的 Default line separator 有 BUG,下拉清單是空的,導致如果設定過 Global Options 的話,換行字元的設定會清空,變成作業系統預設的。
這問題已在 GitHub 修正,但是要等到 jEdit 5.8。
在那之前,Windows 下希望預設的換行字元是 UNIX 的 \n,解決辦法是修改 startup.bsh,在裡面加入這行程式:
jEdit.setProperty("buffer.lineSeparator","\n");
這樣就會在每次啟動 jEdit 時,將 buffer.lineSeparator=\n 寫入 properties 檔案裡面,等於每次都自動設定。