EditUltra - 中國人開發開源的性能卓越的文本/源碼編輯器+數據庫客戶端+Redis客戶端
1. 概述
EditUltra是中國人開發開源的性能卓越的文本/源碼編輯器+數據庫客戶端+Redis客戶端,她基于開源的富文本編輯控件Scintilla提供的基本文本編輯能力,實現了一個完整的文本/源碼編輯器,還能直接提交SQL和Redis命令到數據庫和Redis并以表格方式顯示查詢結果,整個軟件只有10MB(不包含Oracle/MySQL客戶端庫,需單獨安裝)。
EditUltra主要功能包含但不限于:
多文件選項卡
WINDOWS資源管理器右鍵菜單打開文件/目錄中所有文件
檢測文件變動實時重載
文件打開期間自動設置為只讀
文件換行符和字符編碼轉換
遠程文件直接打開和保存
高級的切剪、復制和粘貼
查找和替換
快捷鍵快速選擇單詞、行
高級移動
高級累積選擇、多位置同步操作、多文本塊選擇、列選擇
選定文本后自動高亮上下文中相同文本
BASE64編解碼、散列摘要計算和加解密
書簽
導航
白字符顯示
編程語言語法高亮、自動完成和方法浮動提示,語句塊折疊展開
連接Oracle/MySQL,獲取全表字段列表,執行SQL,顯示查詢結果到表格
連接Redis,執行命令,顯示查詢結果到樹
配置執行對文件、選擇文本的命令
EditUltra完全使用C用純WIN32API編寫而成(v1.0.0.3大約有近2萬行代碼),又加入了眾多優化算法和數據結構,提供了極高的運行效率和較低的系統資源占用,秒開文件,鍵入時毫秒級彈出自動完成列表。
2、開發歷程
作為一名IT人,總喜歡寫些東西,無論是源代碼還是文章,從Linux C開發,到寫博客,從分析爬蟲HTML,到存放SQL命令,從字符編碼檢測,到建立個人技術知識庫,都離不開一款輕便的文本編輯器伴我左右。我認為一款好的文本/源碼編輯器,必須要—————快,如果啟動要花2秒以上基本可以棄用了。
從大學畢業以來嘗試過很多文本編輯器,UltraEdit是我使用比較長的一款軟件,最新版本的UltraEdit帶來了很多新功能,但是知名品牌“烈火”卻遲遲搞不定Hack,我想,從事軟件開發積累多年經驗的我難道就不能自己寫一個嗎,需要什么功能就自己加(真香?),并以開放源代碼方式發布,于是拾起大學時代的VC擼起袖子直接開干,先取個名字,不就是對標UltraEdit嗎,就反過來叫EditUltra。
一開始以為基于開源的富文本編輯控件Scintilla可以讓我的開發工作神速推進,但閱讀完其網上貧瘠的中文資料和官網上也不算豐富的英文文檔后,才發現它真的只能當作VC工具箱里的一個稍微高級點的控件而已,大量功能都得自己擼,像多文件選項卡的控制(WINDOWS TABS控件不提供鼠標調整位置,自己增強唄)、遠程文件直接打開和保存(Linux C開發必需)、自動完成列表的內容管理(Scintilla只提供了調用者給定列表、彈出和關閉接口,而不負責列表的篩選、管理等)。
軟件開發離不開和數據庫等打交道,那么發揮一下想象力(軟件開發很需要想象力),文本編輯器內嵌客戶端SDK連接上數據庫不就能直接執行SQL了嗎,避免了大量復制粘貼到數據庫客戶端軟件里的人工操作,而且這年頭數據庫客戶端軟件還不便宜,很多看似免費也只是純個人開發免費,廣大企業/公司中開發還是要買許可,那么既然客戶端SDK是免費的,就差一個用戶界面把她包裝一下了。
經過兩個半月,每天晚上兒子睡覺后寫兩個小時(周末也是,白天陪全家出去玩等同于上班),一路斬荊披棘,小步迭代而來,終于從v0.0.0.1到v0.0.43.0,很快跳到v1.0.0.0發布了,還請各位看官多多支持和使用,有問題提issue或發郵件給我,我也將努力保持后續的繼續迭代,畢竟現在只實現了基本功能,很多低頻功能以及markdown預覽、HTML預覽等有待于補上。
3. 安裝
3.1. 綠色安裝
下載、解壓綠色包
目前EditUltra只提供64位綠色版,免費下載和使用。
從以下網址可以查詢最新版本更新信息
http://114.215.179.129/EditUltra/ChangeLog-CN
公眾號江南一點雨后臺回復中文編輯器,獲取 EditUltra 綠色版下載鏈接。
把她放到軟件目錄中,我一般會放到專門放綠色軟件的目錄里
D:Program FilesEditUltra-latest.zip
把里面所有文件解壓出來,解壓出來只有10MB
D:Program FilesEditUltra
運行主程序
直接運行里面的editultra.exe即可啟動。
注意:
如需內嵌Oracle客戶端功能,須自行安裝Oracle,并將WINDOWS環境變量PATH中加入oci.dll的所在路徑。
如需內嵌MySQL客戶端功能,須自行安裝MySQL,并將WINDOWS環境變量PATH中加入libmysql.dll的所在路徑。
注冊WINDOWS右鍵文件/目錄彈出菜單項
如果需要在WINDOWS資源管理器中右鍵菜單增加“打開文件”功能,執行菜單環境->文件右鍵彈出菜單。
注冊成功后就能在WINDOWS里右鍵打開文件了。
如果需要在WINDOWS資源管理器中右鍵菜單增加“打開目錄中所有文件”功能,執行菜單環境->目錄右鍵彈出菜單。
注冊成功后就能在WINDOWS里右鍵打開目錄中所有文件了。
WINDOWS10操作系統可能會遇到“沒有管理員權限”報錯,解決方案是右鍵“以管理員身份運行”editultra.exe,再執行以上菜單即可。
3.2. 源碼編譯安裝
如果喜歡折騰,全套源代碼在
https://gitee.com/calvinwilliams/EditUltra
clone下來,用VS自行編譯吧,我用的是Visual Studio 2019。
編譯前需要安裝第三方依賴庫:SciLexer、pcre、libcurl、iconv、openssl、MySQL、Oracle、hiredis。
4、功能導覽
4.1. 一級菜單"文件"
4.1.1. 文件操作
一級菜單下面對文件的操作有新建、打開...、打開最近、保存、另存為...、全部保存、關閉、關閉所有文件、關閉除當前外所有文件。
啟用二級菜單文件變動檢測可在每次文件選項卡選擇該文件時自動檢查文件是否變動,如果變動則重載文件。
啟用二級菜單打開文件后設置為只讀可在文件編輯期間臨時對文件設置只讀權限,防止別人打開修改。
4.1.2. 換行符風格
二級菜單新建文件換行符設置新建文件時使用的哪個操作系統風格的換行符。二級菜單全文轉換換行符可在打開文件后調整文件中的換行符風格。換行符風格目前支持WINDOWS(CR+LF)、MAC風格(CR)、UNIX/Linux風格(LF)。
4.1.3. 字符編碼
二級菜單新建文件字符編碼設置新建文件時使用的字符編碼。二級菜單全文轉換字符編碼可在打開文件后調整文件中的字符編碼。字符編碼目前支持UTF-8、GB18030、BIG5。
4.1.4. 遠程文件管理器
遠程文件管理器用于管理遠程服務器地址簿。管理器對話框右邊是遠程服務器信息,填寫完后點擊測試遠程文件服務器連接測試,如果測試通過的話,點擊新建遠程文件服務器連接加到左邊列表中,注意連接名稱中不能包含空格等白字符。更新遠程文件服務器連接會把右邊的信息修改到左邊的列表中。左下角的刪除遠程文件管理器連接會刪除左邊列表中的當前選擇項。
每個服務器連接信息對應一個配置文件conf fileser_(連接名稱).conf。
如果密碼不填的話,會在每次啟動后第一次展開文件資源管理器中該連接時要求輸入密碼,如果密碼正確成功連接上,后續文件操作無需再輸入密碼。
4.2. 一級菜單"編輯"
4.2.1. 剪切、復制、粘貼和刪除
二級菜單高級剪切的三級菜單項剪切行用于剪切當前行到剪貼板,無需事前選擇,剪切粘貼行把當前行移到下一行的下面,剪貼板里遺留一份當前行內容。
二級菜單高級復制的三級菜單項復制行用于復制當前行到剪貼板,無需事前選擇,復制粘貼行把當前行向下復制一份,剪貼板里遺留一份當前行內容。
二級菜單高級粘貼的三級菜單項粘貼行用于把剪貼板里的內容粘貼作為當前行,往上粘貼行則是向上粘貼。
二級菜單高級刪除的三級菜單項刪除行用于刪除當前行,無需事前選擇。
4.2.2. 合并行
二級菜單合并行把下一行拼接到當前行的末尾,無需事前選擇。
4.2.3. 大小寫轉換
二級菜單大小寫轉換用于對選擇文本一起轉換為大寫或小寫。
4.2.4. 啟用編輯輔助功能
二級菜單啟用自動補全關閉符號當在編輯區輸入(、[、{、'、"時自動補全關閉符號,但光標還是定位在輸入字符和關閉字符之間。
二級菜單啟用自動縮進當在編輯區輸入回車時,如果當前行左邊有白字符(空格、TAB),下一行也會自動加入這些白字符,光標定位在自動補充的白字符后面。
4.2.5. BASE64編解碼
EditUltra支持用戶直接對編輯區選擇的文本做BASE64編碼,并自動替換原選擇文本,編碼和解碼是可逆的。
4.2.6. 散列/消息摘要
EditUltra支持用戶直接對編輯區選擇的文本做散列/消息摘要,并自動替換原選擇文本,摘要算法是不可逆的。目前支持的摘要算法有MD5、SHA1、SHA256。
4.2.7. DES加解密
EditUltra支持用戶直接對編輯區選擇的文本做3DES加解密,彈出對話框輸入密鑰(24字符,非十六進制展開),加密后按十六進制展開自動替換原選擇文本,解密過程同之。
4.3. 一級菜單"搜索"
4.3.1. 查找和替換
二級菜單查找...彈出查找對話框
可用普通文本或正則表達式作為源匹配編輯區的文本,可選項整詞匹配、大小寫匹配、匹配單詞開始決定匹配方式,非模態對話框按鈕查找上一個、查找下一個在不關閉查找對話框時定位編輯區匹配字符串處。
二級菜單查找下一個(或快捷鍵F3)、查找上一個(或快捷鍵Ctrl+F3)在不打開查找對話框直接匹配定位編輯區查找結果。
二級菜單替換...彈出替換對話框
非模態對話框按鈕替換上一個、替換下一個、全部替換在不關閉替換對話框時替換所有編輯區匹配字符串處。
4.3.2. 快速選擇
二級菜單全選或快捷鍵Ctrl+A選擇全文,選擇單詞組或快捷鍵Ctrl+W全選當前位置所在單詞,選擇行或快捷鍵Ctrl+L全選當前位置所在行。
4.3.3. 高級選擇
二級菜單向右累積選擇單詞、向右累積選擇單詞組、累積選擇到下一個語句塊首行用于累加調整選擇文本。
假如一個變量名由三個單詞組成,單詞首字母大小,向右累積選擇單詞自動選擇從當前位置到單詞最后一個字母,向右累積選擇單詞組自動選擇從當前位置到變量名結束,累積選擇到下一個語句塊首行自動選擇從當前位置到空行分割的下一個語句塊首行。
向左累積選擇*亦然。
EditUltra支持定位多個位置或選擇多個文本塊,聯動操作:輸入、退格鍵、刪除、復制等,快捷鍵為Ctrl+MouseLButtonClick或Ctrl+MouseLButtonDown+MouseMove+MouseLButtonUp+...。
比如拼接復制
比如在HTML的TD中同時設置class
EditUltra支持列選擇,聯動操作:輸入、退格鍵、刪除、復制等,快捷鍵為Alt+MouseLButton+MouseMove或Alt+Shift+Left/Right/Up/Down。
作為一個合格的文本/源碼編輯器,也支持選定文本后,自動高亮上下中相同的文本
4.3.4. 高級移動光標
同上,但是是移動光標,而不是累積選擇。
這些操作配備快捷鍵實現與vim同等的快速處理。
4.3.5. 書簽管理
二級菜單書簽提供了對任意打開文件的任意行做行標記,便于事后快速跳躍。
切換書簽的快捷鍵是F9,增加書簽的快捷鍵是Alt+F9,刪除書簽的快捷鍵是Ctrl+F9,刪除所有書簽的快捷鍵是Ctrl+Shift+F9。
跳到上一個書簽(當前文件)的快捷鍵是Ctrl+F2,跳到下一個書簽(當前文件)的快捷鍵是F2,跳到上一個書簽(所有打開的文件)的快捷鍵是Ctrl+Shift+F2,跳到下一個書簽(所有打開的文件)的快捷鍵是Shift+F2。
4.3.6. 導航操作
二級菜單導航提供了由于鼠標點擊定位而產生的位置鏈的快速退回功能,比如臨時到另外一個文件中去復制一個字符串,然后直接跳回來。
退回到上一個位置(當前文件)的快捷鍵是Ctrl+Back,退回到上一個位置(所有打開的文件)的快捷鍵是Ctrl+Shift+Back。
4.4. 一級菜單"視圖"
4.4.1. 顯示/隱藏文件資源樹
二級菜單文件資源樹用于顯示/隱藏主窗口左邊的文件資源管理器區域。
4.4.2. 調整字體顏色方案
二級菜單字體顏色方案用于調整字體顏色方案。
EditUltra支持編程語言語法高亮、鍵入時彈出自動完成框、浮動顯示語法提示、快速定位到庫函數名等符號定義處。字體顏色方案對話框左下角為無高亮的普通文本和當前活動行的字體顏色設置,對話框左邊為編程語言(C++、Java、Python等)的字體顏色設置,對話框右邊為標記語言(HTML、CSS等)的字體顏色設置。
4.4.3. 顯示/隱藏行號/書簽
二級菜單顯示行號、顯示書簽用于顯示/隱藏編輯區靠左的輔助區域里的行號、書簽等標記。
4.4.4. 顯示/隱藏白字符
二級菜單顯示白字符用于使用可見標記顯示空格和TAB,顯示換行符用于使用可見標記顯示換行符,顯示縮進線用于使用可見標記顯示同一縮進行集的縮進豎線。
4.4.5. 縮放
二級菜單縮放里面的放大和縮小用于調大字體顯示大小,不影響打印大小,不受字體顏色方案影響。可用重置縮放恢復原大小。
4.5. 一級菜單"編程"
4.5.1. 語句塊折疊
二級菜單啟用語句塊折疊用于開啟/禁用語句塊折疊功能,折疊標記顯示在編輯區靠左的輔助區域中。
二級菜單語句塊合攏和語句塊展開用于合攏和展開當前層級的語句塊,語句塊折疊切換用于切換合攏和展開。
二級菜單全部語句塊合攏和全部語句塊展開用于一鍵合攏和展開所有層級的語句塊。
4.5.2. 源代碼符號表
EditUltra預置了眾多語言的符號提取正則表達式(位于配置文件conf/doctype_(語言名).conf中的symbol_reqular_exp配置值),匹配出來的符號顯示成編輯區右邊的符號列表框中,可鼠標左鍵雙擊符號直接跳到符號定義處。用戶可根據需要,自行修改配置文件以調整匹配式。
二級菜單跳到符號定義或快捷鍵F11可直接選定光標所在位置的單詞組,從符號列表中查詢出編輯區行號,跳到該行。
4.5.3. 自動完成和語法提示
EditUltra預置了眾多語言的關鍵字和庫函數名,(位于配置文件conf/doctype_(語言名).conf中的autocomplete.set和calltip.add配置值),當用戶鍵入前N個字符時EditUltra會根據優化過的算法和數據結構快速篩選出匹配前N個字符的所有autocomplete.set組合,彈出自動完成框提供用戶選擇,當用戶鍵入(、,時EditUltra會根據匹配的calltip.add,顯示語法提示。個別語言可能會有不同的用戶操作差異性,比如HTML的屬性名自動完成列表是在用戶在標記名后鍵入空格就自動彈出。用戶可根據需要,自行修改配置文件以擴展名字空間。
4.5.4. 數據庫SQL文件
EditUltra約定了.sql為存放數據庫SQL的文本文件,額外的,如果發現文件內容以某一特定注釋格式(數據庫自動連接配置頭)出現,則提取相關信息作為連接數據庫的參數,在打開文件完成后自動連接數據庫,并獲取所有能訪問的表名列表以及字段信息列表顯示到編輯區右邊的符號樹框中,用戶等待連接完成后可直接選擇文件后面的SQL并執行,如果執行的是SELECT語句還會把查詢結果顯示在編輯區下面的表格中。
Oracle的數據庫自動連接配置頭長這個樣子:
-- EDITULTRA BEGIN DATABASE CONNECTION CONFIG-- DBTYPE : Oracle-- DBHOST : (SIG)-- DBPORT : 0-- DBUSER : (連接用戶名)-- DBPASS : [連接用戶密碼]-- DBNAME : -- EDITULTRA END DATABASE CONNECTION CONFIG
以下為一個Oracle配置示例:
-- EDITULTRA BEGIN DATABASE CONNECTION CONFIG-- DBTYPE : Oracle-- DBHOST : CALVINDB-- DBPORT : 0-- DBUSER : calvin-- DBPASS : -- DBNAME : calvindb-- EDITULTRA END DATABASE CONNECTION CONFIG
MySQL的數據庫自動連接配置頭長這個樣子:
-- EDITULTRA BEGIN DATABASE CONNECTION CONFIG-- DBTYPE : MySQL-- DBHOST : (ip)-- DBPORT : (port)-- DBUSER : (連接用戶名)-- DBPASS : [連接用戶密碼]-- DBNAME : (庫名)-- EDITULTRA END DATABASE CONNECTION CONFIG
以下為一個MySQL配置示例:
-- EDITULTRA BEGIN DATABASE CONNECTION CONFIG-- DBTYPE : MySQL-- DBHOST : 127.0.0.1-- DBPORT : 3306-- DBUSER : calvin-- DBPASS : calvin-- DBNAME : calvindb-- EDITULTRA END DATABASE CONNECTION CONFIG
注意:連接用戶密碼可不配置,在每次連接數據庫時會提示輸入,如果連接成功后面會記住密碼,直到程序結束。
數據庫自動連接配置頭比較難記,二級菜單插入數據庫自動連接配置頭可直接插入配置模板到當前SQL文件中,所以不用刻意去記她,不過每個配置項的含義和用法還是要記憶的。
二級菜單執行選定SQL或快捷鍵F5用于執行選定的SQL語句。
4.5.5. REDIS文件
REDIS自動連接配置頭以及一鍵執行同數據庫。
4.6. 一級菜單"環境"
4.6.1. WINDOWS資源管理器右鍵菜單
二級菜單文件右鍵彈出菜單用于向WINDOWS資源管理器右鍵菜單注冊/卸載用 EditUltra 打開文件菜單項。
二級菜單目錄右鍵彈出菜單用于向WINDOWS資源管理器右鍵菜單注冊/卸載用 EditUltra 打開目錄中所有文件菜單項。
注意:在WINDOWS10操作系統中執行以上兩個菜單項需要管理員權限,可重新以管理員身份啟動EditUltra主程序。
4.6.2. 處理當前文件和當前選擇文本的命令
EditUltra允許自定義格式命令用于一鍵處理當前文件或當前編輯區選擇文本。
二級菜單配置處理文件的命令用于配置處理當前文件的格式命令,用%F占位文件名,執行處理文件的命令用于執行該命令。
二級菜單配置處理選定文本的命令用于配置處理當前選定文本的格式命令,用%T占位選定文本,執行處理選定文本的命令用于執行該命令,比如打開瀏覽器提交選定文本為關鍵字給搜索引擎。
4.7. 一級菜單"幫助"
執行二級菜單關于展示EditUltra軟件版權和引用第三方庫列表。
4.8. 目前支持語法高亮的語言列表
目前已支持25種編程語言和標記語言,每種語言的配置文件為conf/doctype_(語言名).conf,一般keywords.set配置為語法高亮單詞列表,keywords2.set配置為庫函數等第三方符號列表,autocomplete.set配置為鍵入時彈出自動完成單詞列表,calltip.add為浮動顯示語法提示文本,symbol_reqular_exp為正則表達式匹配源代碼出符號表放到編輯區右邊列表框供鼠標左鍵雙擊后直接跳到定義處行。
今后還將繼續完善已有語言未實現功能,也將增加更多語言,也歡迎大家把急需的語言告知我優先添加,更歡迎大家幫我添加后PR我,謝謝。
4.9. 啟動速度評測
CPU : i5-7500 3.4GHz內存 : 16GB操作系統 : WINDOWS 10測試說明 : 操作系統啟動后,右鍵測試文本文件彈出菜單中選擇打開約28KB大小的文件。
5. 最后
EditUltra,中國人開發開源的小巧快速又功能豐富的文本/源碼編輯器(內嵌數據庫客戶端、Redis客戶端)。
-
數據庫
+關注
關注
7文章
3816瀏覽量
64448 -
MySQL
+關注
關注
1文章
816瀏覽量
26606 -
編輯器
+關注
關注
1文章
806瀏覽量
31190
原文標題:這個神器,以為是文本編輯器,其實它是 MySQL 客戶端,以為是 MySQL 客戶端,其實它是 Redis 客戶端
文章出處:【微信號:DBDevs,微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論