電子報 #4 - 感恩游泳日

2014 年 11 月

在開源專案中「獲勝」的方式是保持一致和穩定。

歡迎來到 Neovim 的第四份電子報,這個專案旨在徹底改造 Vim 的程式碼庫。它也希望提供開箱即用的功能,並提供更強大的介面來擴展編輯器。

一般新聞

展現你的愛

現在你可以將 Neovim 貼紙貼在你的筆記型電腦上,請前往 UnixstickersNeovim 專區

Unixstickers 將會捐出部分利潤給 ICCF Holland,以支持 Bram Moolenaar 在 Vim 上的工作。

星光閃耀

上一期電子報詳細介紹了 Neovim 如何在其 GitHub 儲存庫中達到 1,000 個 issue/pull request。

在過去兩個月裡,該儲存庫在 Github 上獲得了超過 10,000 個 stargazers。該儲存庫也剛超過 100 位貢獻者的門檻。

Floobits 已批准

Floobits 是一項與編輯器整合的服務,讓協同編寫程式碼更容易。它已棄用其 Vim 插件,轉而支持 Neovim 插件。

Floobits 表示,新的插件「錯誤更少,效能更高」,優於他們之前的插件。閱讀他們的完整文章以了解更多關於他們想法的資訊,或查看儲存庫以查看程式碼。

日本 VimConf 2014

Vim-jp 在 11 月 8 日的週末於日本東京舉辦了年度VimConf 會議

許多 Vim 插件的創作者 @Shougo 分享了他到目前為止使用 Neovim 的經驗和觀點。查看英文版的投影片以閱讀他的想法。

開發新聞

重構的插件系統

@tarruda 完成了他的 pull request,該請求做了兩件事。它提供了遠端插件的初步實作,遠端插件將是在外部行程中執行並透過 msgpack-rpc 與 Nvim 通訊的插件。詳細資訊請見 :h remote-plugin

第二個變更改進了現有的供應器基礎設施,允許使用 VimScript 實作供應器。這提供了更大的彈性,因為以前供應器需要使用 msgpack 實作。更多詳細資訊請見 :h nvim-provider

注意

如果你在使用這個新的插件系統時遇到問題,可能是因為舊版本和/或舊配置的過時檔案所造成的。

請查看此評論和隨後的兩個 issue 以了解更多詳細資訊:12

重新啟用 iconv

iconv 是一個「用於沒有 iconv 或其實作無法在 Unicode 之間轉換的系統的函式庫。」

在遷移到 CMake 的過程中,遺漏了用於指示此類系統的巨集 USE_ICONV。因此,Neovim 在需要時從未觸發特定的編碼轉換。

@aktau 寫了一篇很棒的文章,名為 Neovim:輸入編碼和你,詳細討論了輸入編碼以及他如何發現這個問題。他建立了一個 pull request 來修復此問題,並且已合併到 master 分支。

移除 Vim 特定的整數型別 (第二部分)

@elmart 回來繼續他過去的工作 (1, 2),透過這個 pull request 移除 Vim 特定的整數型別。這個主題最早在六月份的第一份電子報中介紹過。

這個最新的 pull request 的合併,消除了 @tarruda 的長期重構目標,即移除所有專案特定的型別

VimL -> Lua 和 Vim 錯誤報告

@ZyX-I 仍在努力推進 他的 VimL 到 Lua 轉譯器。解析器中已實作超過 80% 的 Vim 命令。

在編寫轉譯器的過程中,他發現了各種錯誤 (1, 2, 3, 4, 5)。他持續將這些錯誤報告到 vim_dev 電子郵件列表,並在可能的情況下貢獻修補程式。

上游 Vim 修補程式

自上一期電子報以來,許多 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 結構可能包含不完整的行。

為了補救此問題,@splinterofchaosAPI 層級新增了邏輯來尋找換行字元並將其傳回。最終結果是作業的活動現在將 stdout 儲存在清單中而不是字串中。如果你的程式碼正在使用作業,你可能需要解決這個問題。

標記錯誤修復

@akkartik 發現了 Nvim 的標記功能中的一個錯誤。

標記功能可用於在緩衝區的指定行上放置指示符號。它會顯示在編輯器視窗的左側。這適用於偵錯工具、語法檢查器和各種其他插件。

此錯誤導致 nvim 在使用 :sign unplace 命令時,無法移除跨多個緩衝區放置的標記。

@akkartik 建立了一個 pull request 來修復此問題,並且繼續更新了CONTRIBUTING.md 檔案,以包含更多關於外觀變更的指引

自製 Neovim

Neovim 已將其 homebrew 公式移至其組織中的專屬儲存庫,使其可以透過 tap 而不是僅透過公式輕鬆安裝。你現在可以使用以下命令安裝它

$ brew tap neovim/homebrew-neovim
$ brew install --HEAD neovim

若要查看更多資訊,請前往新的儲存庫:neovim/homebrew-neovim@colinrymer 最初建議了此改進@xu-cheng 協助了測試和遷移。

機器人 Marvim

@stefan991 啟動的 Neovim 機器人 @Marvim,已由 @fwalch 進行了一些重大改進。

這些改進包括

減少 Clang 分析器警告

@elmart 一直在努力減少來自 Clang 靜態分析器的警告數量。他透過四個不同的 pull request 完成了此操作 (1, 2, 3, 4)。

伸出援手

捐款

如果你想協助支持開發,可以使用比特幣在此處捐款:1Evu6wPrzjsjrNPdCYbHy3HT6ry2EzXFyQ 或在 Neovim Bountysource 頁面上支持團隊。

貢獻

如果你是一位經驗豐富的開發人員,或是一位沒有經驗但想要學習的人,請瀏覽GitHub 儲存庫,並查看READMECONTRIBUTING 指南,最後查看Wiki 以了解更多資訊。

有很多機會可以伸出援手,並且有很多事情可以做。

總結

你對本電子報有任何回饋或建議嗎?請隨時透過 Neovim Twitter 聯繫我們。

本電子報無法涵蓋社群的所有貢獻和支持。感謝在過去兩個月中以某種方式提供協助的所有其他貢獻者。

請務必訂閱 RSS 饋送,以隨時掌握 Neovim 世界的最新動態。下一期電子報將在約兩個月後,在明年初發布。

下次見。:wq

新聞

新聞存檔中尋找更多更新。還有一個 RSS 饋送

什麼是 Neovim?

Neovim 是一個基於 Vim 的文字編輯器,專為擴展性易用性而設計,旨在鼓勵新的應用程式和貢獻

討論

請訪問 #neovim:matrix.org 或在 irc.libera.chat 上加入 #neovim 頻道與團隊交流。