1. LWN:期待Emacs 30!

        共 3335字,需瀏覽 7分鐘

         ·

        2024-04-10 22:40

        關(guān)注了就能看到更多這么棒的文章哦~

        Looking ahead to Emacs 30

        By Jake Edge
        January 30, 2024
        Gemini translation
        https://lwn.net/Articles/959931/

        2023 年的EmacsConf與之前的一樣,是一場網(wǎng)絡(luò)會議,討論了Emacs 編輯器的各個方面—當然,它不僅僅是一個編輯器。去年的會議是在 12 月初舉行。其中一場備受關(guān)注的演講是關(guān)于 Emacs 開發(fā),演講人為 John Wiegley,是現(xiàn)場直播。在演講中,他簡要介紹了即將推出的 Emacs 30 的一些重要新特性,這是該工具的下一個主要版本。

        演講

        Wiegley 的演講在 EmacsConf 上似乎已經(jīng)成為了一種年度傳統(tǒng)。他指出,他并不是 Emacs 的維護者,因此他在與長期維護者 Eli Zaretskii 交談了一個小時后收集了演講的信息。Zaretskii 告訴他,2023 年 7 月發(fā)布的 Emacs 29 有很多新特性;Wiegley 說,其中一些“相當激進”,但它已經(jīng)取得成功并受到好評。Emacs 29.2 發(fā)布在演講時迫在眉睫;它在 1 月中旬發(fā)布。他說,該計劃是在此后不久為 Emacs 30 創(chuàng)建一個新的發(fā)行分支。

        Emacs 30 看起來“不如 Emacs 29 有趣”,因為重大變化會更少,但這并不意味著沒有計劃做重要改動。首先,它將支持 Android,這是 LWN 去年試用過的一個特性?!叭绻阋恢毕朐谄桨咫娔X上使用原生 Emacs”,這是 Wiegley “一直想要做的事”,它將在新版本中提供。Emacs 30 對平板電腦和筆記本電腦的觸摸屏支持也得到了很大改進。

        Emacs 的“Grand Unified Debugger” (GUD) 模式將支持與LLVM 編譯器套件一起使用的LLDB 調(diào)試器。這在 macOS 上尤其有用,也是他個人比較期待的另一個特性。為了避免用其“微薄的資源”支持兩種主要的 Perl 模式,Emacs perl-mode 正在被C Perl 模式替代。

        Emacs 29 的主要特性之一是可選支持Tree-sitter 解析庫,這可以提供更好、更快的語法識別和高亮顯示、代碼縮進等。Tree-sitter 將為使用 JavaScript 描述語法的語言生成解析器;輸出的是其他工具可以使用的具體語法樹(concrete syntax tree)。Emacs 29 附帶了 20 多種面向各種編程(和其他)語言的新主要模式,這些模式可以在用 Tree-sitter 構(gòu)建的 Emacs 里使用。許多種編程語言 (C、C++、Rust、Python、Go、Java、Ruby、…)、配置語言 (YAML、TOML、JSON) 和其他語言類型 (Bash、CSS、CMake、Dockerfile、…) 獲得了新的 major mode(例如 python-ts-mode),這就是新特性的的一部分。

        Tree-sitter 使用語法庫(grammar libraries),這些庫必須從 JavaScript 語法構(gòu)建并在本地系統(tǒng)中存在,以便解析語言的結(jié)構(gòu)。Wiegley 說,Tree-sitter 模式避免了使用 Emacs Lisp 和正則表達式進行語法識別,就如同現(xiàn)在所做的那樣。隨著時間的推移,越來越多的語言將得到基于 Tree-sitter 的主要模式。對于 Emacs 30,已經(jīng)添加了三種新的 Tree-sitter 模式:Lua、Elixir 和 HTML。

        他提到的最后一個新特性是針對“更多可疑構(gòu)成部分”的更好的字節(jié)編譯器警告。這些包括宏主體的空值和預(yù)期出現(xiàn)表達式的位置缺少表達式等內(nèi)容;“只是些可能散布在代碼中的愚蠢做法”。新警告將“幫助你清理代碼并去除這些潛在的錯誤點”。Emacs 30 的 NEWS 文件中有一長長的列表。

        Wiegley 還指出,Zaretskii 要求他提到 Stefan Kangas 已被添加為 Emacs維護者。Kangas 今年在 EmacsConf 上也發(fā)表了演講。

        在演講后的問答環(huán)節(jié)中,Wiegley 討論了他最喜歡的近期特性,原生編譯名列榜首。他在 Emacs 緩沖區(qū)中使用許多不同的模式,包括Org模式、Gnus和Esh,因此原生編譯帶來了巨大的變化。它“讓用戶體驗比過去有時會經(jīng)歷的卡頓和慢速變得更接近現(xiàn)代應(yīng)用程序”。他還談到了使用機器學(xué)習(xí)工具(例如 ChatGPT,包括編寫 Emacs Lisp 代碼)、在 macOS 上對 Emacs 的支持(他是長期用戶,沒有遇到任何重大問題)、Rosetta Code等等。

        其它功能

        查看NEWS文件顯示,Emacs 30 中有很多其它新增功能。例如,如果構(gòu)建系統(tǒng)中提供了 libgccjit,則現(xiàn)在本機編譯將通過 Emacs 自動構(gòu)建。在 Linux 系統(tǒng)上,Emacs 現(xiàn)在將成為用于處理 org-protocol URI 的默認應(yīng)用程序;emacsclient.desktop 文件已經(jīng)更改為注冊為該協(xié)議的處理程序。X selection 請求(用于選擇和復(fù)制,也稱為復(fù)制和粘貼)""現(xiàn)在處理速度更快且是異步的"", 因此它們應(yīng)該可以在慢速網(wǎng)絡(luò)上更好地工作。

        其中包含針對 Emacs 許多不同部分的新增和已更改功能,包括 Dired、Grep、網(wǎng)絡(luò)安全管理器、版本控制、編譯模式 等。=NEWS= 文件為接近 2000 行的文本,以 Org 文件格式表示,這應(yīng)該可以體現(xiàn)變更量級;另一個有趣的數(shù)據(jù)是,Zaretskii 和 Wiegley 聲稱較大得多的版本 Emacs 29 的文件長度是前者的兩倍多。

        在對現(xiàn)有 jump-to-register 和 point-to-register 命令的行為進行更改引發(fā)了 冗長的辯論 后,所作的一項更改被部分取消。建議 在 2023 年 10 月更改 register-name 提示的行為。當時,討論 bug 的郵件中的參與者同意將新行為設(shè)為默認行為,但在將其合并到主分支中,便引發(fā)了投訴。正如 NEWS 文件中 所示,通過將默認值設(shè)為保留現(xiàn)有行為,同時允許其他人自定義提示行為,從而解決了這些投訴。

        因此,Emacs 30 版本將成為一個集散地,其中包含此工具覆蓋的廣泛領(lǐng)域的特性、錯誤修復(fù)、用戶選項等。在最近幾個主要版本中,版本發(fā)布節(jié)奏似乎有所加快,這可以在 發(fā)布歷史記錄頁面 上看到,因此我們很可能在今年年底前看到 Emacs 30。

        在這段時間內(nèi)很可能發(fā)生另一件事件,也就是下一次 EmacsConf,看起來會安排在每個日歷年的年底。2023 年的報道 描述了一次生機勃勃的會議,會議上進行了 很多有趣的演講,所有演講都可通過各種格式觀看。該報告還詳細介紹了用來 組織和主辦虛擬會議 的自由軟件工具,以及 會議嘗試的流程改進 和 會議的財務(wù)收支,所有這些會讓其他會議組織者感興趣。

        正如五個月前 指出的,我是個十分努力想最大程度利用 Emacs 的相對新手,雖然我使用它很長時間了。當然,這僅僅意味著有很多機會學(xué)習(xí)新東西—事實上有太多新東西了。只要時間允許,看起來 EmacsConf 演講提供了更多類似機會。這個特別的兔子洞探索肯定是無止境的。

        全文完
        LWN 文章遵循 CC BY-SA 4.0 許可協(xié)議。

        歡迎分享、轉(zhuǎn)載及基于現(xiàn)有協(xié)議再創(chuàng)作~

        長按下面二維碼關(guān)注,關(guān)注 LWN 深度文章以及開源社區(qū)的各種新近言論~



        瀏覽 35
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
          
          

            1. 欧美激情网 | 他扒开我的内裤吻我下边 | 范冰冰全部三级伦在线观看 | 成人片全裸直播在线观看 | 影音先锋aV成人无码电影 |