在開源專案中「獲勝」的方式是保持一致和穩定。
歡迎來到 Neovim 的第四份電子報,這個專案旨在徹底改造 Vim 的程式碼庫。它也希望提供開箱即用的功能,並提供更強大的介面來擴展編輯器。
現在你可以將 Neovim 貼紙貼在你的筆記型電腦上,請前往 Unixstickers 的 Neovim 專區。
Unixstickers 將會捐出部分利潤給 ICCF Holland,以支持 Bram Moolenaar 在 Vim 上的工作。
上一期電子報詳細介紹了 Neovim 如何在其 GitHub 儲存庫中達到 1,000 個 issue/pull request。
在過去兩個月裡,該儲存庫在 Github 上獲得了超過 10,000 個 stargazers。該儲存庫也剛超過 100 位貢獻者的門檻。
Floobits 是一項與編輯器整合的服務,讓協同編寫程式碼更容易。它已棄用其 Vim 插件,轉而支持 Neovim 插件。
Floobits 表示,新的插件「錯誤更少,效能更高」,優於他們之前的插件。閱讀他們的完整文章以了解更多關於他們想法的資訊,或查看儲存庫以查看程式碼。
Vim-jp 在 11 月 8 日的週末於日本東京舉辦了年度VimConf 會議。
許多 Vim 插件的創作者 @Shougo 分享了他到目前為止使用 Neovim 的經驗和觀點。查看英文版的投影片以閱讀他的想法。
@tarruda 完成了他的 pull request,該請求做了兩件事。它提供了遠端插件的初步實作,遠端插件將是在外部行程中執行並透過 msgpack-rpc 與 Nvim 通訊的插件。詳細資訊請見 :h remote-plugin
。
第二個變更改進了現有的供應器基礎設施,允許使用 VimScript 實作供應器。這提供了更大的彈性,因為以前供應器需要使用 msgpack 實作。更多詳細資訊請見 :h nvim-provider
。
如果你在使用這個新的插件系統時遇到問題,可能是因為舊版本和/或舊配置的過時檔案所造成的。
iconv 是一個「用於沒有 iconv 或其實作無法在 Unicode 之間轉換的系統的函式庫。」
在遷移到 CMake 的過程中,遺漏了用於指示此類系統的巨集 USE_ICONV
。因此,Neovim 在需要時從未觸發特定的編碼轉換。
@aktau 寫了一篇很棒的文章,名為 Neovim:輸入編碼和你,詳細討論了輸入編碼以及他如何發現這個問題。他建立了一個 pull request 來修復此問題,並且已合併到 master 分支。
@elmart 回來繼續他過去的工作 (1, 2),透過這個 pull request 移除 Vim 特定的整數型別。這個主題最早在六月份的第一份電子報中介紹過。
這個最新的 pull request 的合併,消除了 @tarruda 的長期重構目標,即移除所有專案特定的型別。
@ZyX-I 仍在努力推進 他的 VimL 到 Lua 轉譯器。解析器中已實作超過 80% 的 Vim 命令。
在編寫轉譯器的過程中,他發現了各種錯誤 (1, 2, 3, 4, 5)。他持續將這些錯誤報告到 vim_dev 電子郵件列表,並在可能的情況下貢獻修補程式。
自上一期電子報以來,許多 Vim 修補程式已合併到 Neovim 中。
這項工作是由 @splinterofchaos, @Shougo, @mhinz, @NOLFXceptMe, @atwupack, @dkns 完成的 (按移植的修補程式數量排序)。
你可以在 Neovim 網站上自動產生的Vim 修補程式報告中查看 Vim 修補程式的完整狀態。
在 @tarruda 開啟 討論舊版測試遷移的主 issue 後,@nate00 遷移了第一個舊版測試。@rainerborene 隨後進行了一批轉換,並已著手進行下一批。
以前,舊版測試是透過使用 -s <test file>
標誌啟動 Vim 的執行個體來執行的,該標誌啟用靜音模式。此模式會將這些行讀取為你已輸入的行。測試可以在 nvim
上透過執行 make oldtest
來執行。
這些遷移 (例如測試:之前 和 之後) 的實現,是因為它們現在透過 msgpack-rpc 與 Neovim 通訊;這也是 UI 在通訊時將使用的相同機制。
@splinterofchaos 碰巧發現一個錯誤,其中作業活動的輸出可能已損毀。如果緩衝區在到達 '\n'
字元之前已填滿,則 rstream 結構可能包含不完整的行。
為了補救此問題,@splinterofchaos 在API 層級新增了邏輯來尋找換行字元並將其傳回。最終結果是作業的活動現在將 stdout
儲存在清單中而不是字串中。如果你的程式碼正在使用作業,你可能需要解決這個問題。
@akkartik 發現了 Nvim 的標記功能中的一個錯誤。
標記功能可用於在緩衝區的指定行上放置指示符號。它會顯示在編輯器視窗的左側。這適用於偵錯工具、語法檢查器和各種其他插件。
此錯誤導致 nvim 在使用 :sign unplace
命令時,無法移除跨多個緩衝區放置的標記。
@akkartik 建立了一個 pull request 來修復此問題,並且繼續更新了CONTRIBUTING.md 檔案,以包含更多關於外觀變更的指引。
Neovim 已將其 homebrew 公式移至其組織中的專屬儲存庫,使其可以透過 tap 而不是僅透過公式輕鬆安裝。你現在可以使用以下命令安裝它
$ brew tap neovim/homebrew-neovim
$ brew install --HEAD neovim
若要查看更多資訊,請前往新的儲存庫:neovim/homebrew-neovim。@colinrymer 最初建議了此改進,@xu-cheng 協助了測試和遷移。
由 @stefan991 啟動的 Neovim 機器人 @Marvim,已由 @fwalch 進行了一些重大改進。
這些改進包括
@elmart 一直在努力減少來自 Clang 靜態分析器的警告數量。他透過四個不同的 pull request 完成了此操作 (1, 2, 3, 4)。
如果你想協助支持開發,可以使用比特幣在此處捐款:1Evu6wPrzjsjrNPdCYbHy3HT6ry2EzXFyQ
或在 Neovim Bountysource 頁面上支持團隊。
如果你是一位經驗豐富的開發人員,或是一位沒有經驗但想要學習的人,請瀏覽GitHub 儲存庫,並查看README、CONTRIBUTING 指南,最後查看Wiki 以了解更多資訊。
有很多機會可以伸出援手,並且有很多事情可以做。
你對本電子報有任何回饋或建議嗎?請隨時透過 Neovim Twitter 聯繫我們。
本電子報無法涵蓋社群的所有貢獻和支持。感謝在過去兩個月中以某種方式提供協助的所有其他貢獻者。
請務必訂閱 RSS 饋送,以隨時掌握 Neovim 世界的最新動態。下一期電子報將在約兩個月後,在明年初發布。
下次見。:wq
Neovim 是一個基於 Vim 的文字編輯器,專為擴展性和易用性而設計,旨在鼓勵新的應用程式和貢獻。
請訪問 #neovim:matrix.org 或在 irc.libera.chat 上加入 #neovim 頻道與團隊交流。