你能為開發人員推荐一個 GUI 文本編輯器(需要的功能在裡面)嗎?
F-cked 與所有 IDE 膨脹軟體(就我的目的而言,它們都過於復雜且不方便),我想到了一個想法,我可能會更好地使用一個好的編輯器而不是 IDE。
我不需要項目,我不需要建構管理(我更喜歡從命令行手動建構,並自己編寫建構腳本),我不需要透視圖、工作區、模組等。
我需要(按重要性降序排列)
- 漂亮的圖形使用者界面。(我很抱歉說這是第一要務,但這是我的口味,沒有它我會感到不舒服並且沒有效率)。請不要提供 VIM(沒有 GUI)或
$$ X $$EMACS(帶有醜陋的 GUI)。沒有奇怪的鍵方案(像 VIM 那樣),沒有命令模式(或者在編輯器的使用中可選地啟用和不重要)等。 2. 在任何語言中****手動定義的可折疊區域(如在 c# 中)(由特殊宏定義,由(任何語言的)註釋轉義)。這是最重要的要求。如果我找到一位編輯與第一個編輯一起滿足這一點,我已經很高興了。據我所知,在 Windows 中,UltraEdit 曾經有這個功能,但我不確定(更新:現在我已經安裝了 UEx anc 在那裡找不到這樣的功能)。 3. 簡單但瑞士發條可靠的重構,最好說是“類固醇上的多文件搜尋和替換”。 4. 語法高亮。 5. 對應的開/關括號/大括號/標籤/引號/等。對突出顯示。 6. 自動完成。可能很簡單,基於字典。如果它可以作為 IDE 工作,在我放一個點並按 Ctrl+Space 後向我顯示班級成員,那就太好了,但如果有 1-4 個功能,我可以承受缺少這個功能。 7. 程式碼片段/宏。
第2點的解釋:
熟悉 C# 的人可能知道#region/#endregion 指令。我可以將它們放在程式碼中的任何位置,編輯器將提供一個選項,將分隔的塊折疊成一行(標題指定為起始指令參數)並按需展開它(就像大多數現代編輯器可以用語言做的那樣塊,例如函式體,但我希望能夠使用我想要的任何特定程式碼塊來做到這一點)。
恕我直言,對於任何語言,它都可以很容易地實現(在已經為語言塊實現程式碼折疊的編輯器中),不需要語言語法分析。區域定義指令語法可以由編輯器提供,通過語言的註釋行語法轉義這些指令。
例如,NetBeans IDE 具有適用於 Java 的此功能,此處對其進行了很好的描述: http ://wiki.netbeans.org/FaqCustomCodeFolds 但不幸的是,在 NetBeans 中,這僅適用於 Java(可能還有其他一些)語言,並且例如,對 Scala 不起作用。
我主要編寫 Scala 程式碼,但是,正如我所寫,我希望,並且看不出有任何理由不能將其作為與語言無關的功能提供 - 如果該行包含“(whatever) #region” -這是一個可折疊的區域開始,如果行中的“#region”之後有一些東西 - 這是區域標題,如果行包含“(whatever)#endregion” - 這是區域完成。只需找到一個起點和一個相應的終點並將其折疊即可。使用者可以用任何特定語言的註釋符號替換“(whatever)”。
更新:找到答案(只是為了以更豐富的形式總結和分享答案,我將在此處包含它):
有很多好的建議(我將嘗試使用 SciTE 並嘗試學習 EMACS 和 VIM,當我有適當的心情時)。我自己Google搜尋我還發現了一個有趣的E-TextEditor(一個基於 wxWidgets 的開源(意味著跨平台,已經成功地在 Fedora 10和Ubuntu 9.04上建構和安裝它)Mac 的TextMate複製 for Windows)。
但由於fschmitt 的 建議,現在找到的答案是Kate。
為了得到我對 Scala 的第 2 點(上面的問題)(按照我解釋的方式很容易適應任何其他語言),我只需要在“/usr/share/kde4/apps/katepart/”中添加 2 行語法/scala.xml":
<RegExpr attribute="Decimal" context="#stay" String="//#region.*$" beginRegion="Region1"/> <RegExpr attribute="Decimal" context="#stay" String="//#endregion.*$" endRegion="Region1"/>
我從 C# 語法定義文件 cs.xml 中獲得了這個想法。唯一的竅門是,為了讓這個註釋輔助 hack 起作用,這些行將被放置在定義語言註釋的行之前。
還有一個驚喜:Kate 並不像我以前認為的那樣依賴大量的 KDE 庫——在經典(Gnome)Ubuntu 10.10 中,“apt-get install kate”只下載了一個不起眼的(小於 MiB)包。
我知道你說過你不想要時髦的熱鍵,但從你想要的來看,它確實聽起來像是 GVIM 的功能列表。也許值得
vimtutor
用來了解 (G)vim 為何如此工作。起初我也很害怕,但現在我不想回去了。
我不知道您的所有要求,但您應該檢查並嘗試的兩個項目是Geany和SciTE。
這兩個項目都支持輕量級但功能強大的編輯器,讓事情變得簡單。