電子報 #2 - 白日夢

2014年7月

歡迎來到 Neovim 的第二份每月電子報,這個專案的夢想是成為我們都會喜歡的下一代文字編輯器。

一般新聞

色彩配置競賽

在關於 預設 Neovim 設定 的討論中,提出了使用預設色彩配置的想法。後來啟動了一個 議題 來決定將使用哪種色彩配置。

最終決定為 Neovim 建立一個新的色彩配置會很棒。為此,Neovim 的協作者將舉辦一個競賽,允許提交色彩配置。經過一段時間,提交將會關閉,然後將啟動一個新的投票,讓社群選出獲勝者。

獲勝者將獲得獎金,他們的色彩配置將永遠被納入 Neovim 的發行版本中。

請隨時關注 Neovim Twitter,以獲知何時公布提交指南和流程。

開發新聞

釐清 Neovim 的許可證

有人 關切 Neovim 使用 Vim 的許可證。雖然 Vim 許可證仍然適用於原始的 Vim 程式碼,但新編寫的程式碼並未明確處理,並且可以重新授權。

社群決定使用 Apache 2.0。然後 更新 了許可證資訊,並要求所有貢獻者填寫 此文件,並將您的名字新增到 此 Wiki 頁面 來簽署一份 CLA (貢獻者授權協議)

注意

這表示如果您在切換到 Apache 2.0 *之前* 貢獻了程式碼,您的程式碼仍然受到舊的 Vim 許可證的約束。*除非* 您簽署 CLA,否則它不會成為 Apache 2.0 的一部分。

客戶端 RPC

@tarruda 完成了 他的實作,提供了一個 channel_send_call 函數,允許在其他腳本引擎(例如 Python、Ruby 等)中執行程式碼。

正如 @tarruda 指出,程式碼在另一個程序中執行,會阻塞直到客戶端回應,有一個 3 秒的超時時間,並且呼叫堆疊限制為 20。

各種修復和改進

@tarruda 開啟了 一個拉取請求,其中提出了對他過去的一些工作進行各種修復和改進。這些變更針對了 jobs API、streams API 以及最後的 events API。所有這些過去的功能都在上個月的電子報中討論過。

這些變更包括能夠透過 streams 發送大量數據、為 msgpack 解析失敗添加程式碼,以及能夠鎖定一組事件來源。

在 Windows 下編譯

在 Windows 上建置 Neovim 的能力一直很受歡迎,並且是 幾個月來的目標。整個討論可以在 這個議題 中查看。

@equalsraf 最近在嘗試使用 MinGW 建置 Neovim 時取得了 進展

有關在其他平台上建置的協助,請務必查看 Wiki 上新建立的 建置 Neovim 頁面,以取得與編譯相關的所有資訊。

可成長陣列新增

Garray.c 是來自 Vim 的資料結構,為編輯器提供了一個「可成長的陣列」。它過去一直是許多 拉取請求 的目標。

@philix最新新增 提供了一種更簡單的方式來附加到陣列。雖然 garray 仍在改進中,但最終它將被更穩健的解決方案取代。

修復 VimL Libcall

在一些清理過程中,一個名為 mch_libcall() 的函數被臨時刪除。它在 Vim 中透過使用 libcall() 函數呼叫,並被某些外掛程式使用。

開始 討論 關於它的臨時移除以及如何重新添加它以保持與 Vim 的相容性。@aktau 提出了一個解決方案,然後建立了一個 拉取請求,其中包含已合併的新變更。

持續重構檔案函數

在上個月的議題中,我們討論了 mch_stat 呼叫的變更。這個重構由 @stefan991 繼續 進行,以新增一個新的結構,該結構封裝了 libuvuv_stat_tst_devst_ino

翻譯

Neovim 的貢獻者遍布世界各地。許多母語人士一直忙於更新其母語的翻譯。

已更新的翻譯包括 德語巴西葡萄牙語。其他語言,如 西班牙語瑞典語 也正在進行中。

Doxygen 主題

@stefan991 自訂了 Doxygen 主題,使其樣式看起來與 Neovim.io 相似。然後,它被 添加到程式碼庫 中,以供未來建置使用。

字串處理

有人 努力vim_strncpy 替換為 strlcpy,並且已成功合併。但是,這些變更產生了一些 影響

作為回應,@aktau 建立了一個 主要議題 來協作處理該流程並討論前進的最佳方式。

引用 @philix 的話,他在 他的評論 中做了最好的總結

字串處理在文字編輯器中非常重要,而目前的程式碼庫沒有對字串處理進行良好的抽象(儘管我們一直在慢慢改進它)。在如此少的抽象(以及許多底層程式碼)下,可以完成這麼多工作真是一個奇蹟。

未來展望

Neovim.io 上的文件

Neovim 的 開發文件 是由 Doxygen 自動產生的,目前正在 移至 neovim.io 網域的過程中。

除此之外,Neovim 的使用者文件也正在 移至該處

為了協助該流程,Neovim 新任命的常駐自動機(又名機器人) @Marvim 將被設定為自動化該流程。只是不要 跟他談論人生

協助

捐贈

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

貢獻

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

有許多協助的機會和許多事情要做。

結束了

您對這第二份電子報有任何回饋或建議嗎?請隨時透過 Neovim Twitter 與我們聯繫。

此外,請務必訂閱 RSS 提要,以隨時了解 Neovim 世界中發生的事情。下一份電子報將在八月的第一個星期五左右發布。

直到下次。 :wq

新聞

新聞存檔 中找到更多更新。還有一個 RSS 提要

什麼是 Neovim?

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

討論

請瀏覽 #neovim:matrix.org 或 irc.libera.chat 上的 #neovim 與團隊聊天。