1. 程式人生 > >Ubuntu14 04升級vim7 4到8 0

Ubuntu14 04升級vim7 4到8 0

                            

1  vim8.0釋出

1.1   vim8.0時代來臨

終於釋出了Vim 8.0, 北京時間 2016年9月12日 22:12,Bram 更新了 8.0 的 Announcement:

After more than ten years there is a major Vim release. It gives you interesting new features, such as channels, JSON, Jobs, Timers, Partials, Lambdas, Closures, Packages and more. Test coverage has been increased, many bugs were fixed, this
is a rock stable version.Among the new features are:- Asynchronous I/O support, channels, JSON- Jobs- Timers- Partials, Lambdas and Closures- Packages- New style testing- Viminfo merged by timestamp- GTK+ 3 support- MS-Windows DirectX support
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

早在今年4月份,上述功能就開發出來了,到在5月份的 7.4.1829時就基本可用了(我也從那時開始使用),其後幾個月陸續修正到 7.4.2367 (共計修正538項缺陷),7.4.2367之後打上8.0這個 tag,可以說是比較穩定的一個版本.

1.2   功能更新

Vim7.4.2364和Vim 8.0 的區別?

Vim 7.4.2367之後直接打上了 8.0的tag,離 7.4.2364只有3項小修正:分別修正了一些windows打包指令碼的問題,以及測試用例的小問題,沒啥大更新。

怎麼體驗一下 Vim 8.0 的各種新功能?

眾所周知,Vim 可能受 NeoVim 的刺激, 加入了非同步任務系統和 Timer,下面再介紹下這幾個主要功能更新以及給Vim帶來的影響:

  • 非同步任務

以前在 Vim 裡面呼叫外部一個程式(比如編譯,更新 tags,Grep ,檢查錯誤,git/svn commit)等, 只能傻等著外部程式結束才能返回 Vim ,這也是 Vim 最受emacs詬病的地方,限制了很多可能性,導致NeoVim當年釋出時,最先引入的新功能就是非同步機制。如今 8.0中,可以在後臺啟動各種長時間執行的任務,並把輸出重定向到 VimScript 裡面的某個 callback 函式,和 nodejs的子程序管理模組類似,使得你可以一邊瀏覽/編輯檔案,一遍執行各種長時間編譯類任務可以同時執行,並且把輸出同步到 Vim 裡的某個視窗中。

  • 時鐘機制

可以在 VimScript 中建立時鐘,比如每隔100ms呼叫一下某個 VimScript 裡面的函式,這樣方便你定時檢查各種狀態,比如某項工作是否做完,或者某個與伺服器的通訊如何了。有這個機制配合 Python 可以實現純指令碼的終端,或者實現網路互動,實時讀取一些股票資訊並且顯示在右下角之類的,這給 Vim 外掛開發帶來了更多可能性。

  • 網路機制

可以用純 VimScript + socket + json 和外部支援json的伺服器進行通訊,比如通知遠端伺服器做一件什麼事情,或者查詢個什麼東西,不過使用 Timer + python 也可以達到同樣的效果。

  • 內建 JSON 支援

如今 JSON 使用得越來越廣泛,為此 Vim 8.0 添加了 json_encode() 和 json_decode()

  • Packages(外掛包管理)

Vim 有一個令人詬病的地方,其外掛管理不甚方便。故此 Vim 社群出現了一些第三方外掛管理工具. Vim 8.0自帶外掛包管理功能,相信會使外掛的使用更加方便

  • GTK+ 3 支援

GTK+ 2 逐漸步入老舊之列,所以 Vim 8.0 帶來了 GTK+ 3 支援。

  • Jobs、Timers、Partials、Window ID 等

Vim 8.0 不僅為使用者,而且也為開發者添加了一些不錯的特性。

1.3   對 Vim 外掛有何影響呢?

總之 Vim 8.0 的這次更新,Vim帶來了更多可能性,讓各種外掛能夠完成很多以前做不了的事情,讓 Vim 在保持小巧的情況下,跟 emacs 一樣變得 “像個作業系統了” (這句話好像是 emacser 們最值得驕傲的地方),提供比以前好得多的體驗,期待馬上有人用 Python + timer 實現一個內嵌終端出來,再移植個 emacs的後臺工作管理員之類的,以 Python的強大,外加 Vim 自身機制的提升,實現一個 org-mode之類的東西只是時間問題。

(當然,emacser 們十分迷戀的 org-mode,個人覺得有些過時了,今天這個時代,這類事情還是交給各種能在:手機+PC+WEB+雲上同步的知識管理、日程管理/GTD 的專業軟體去做吧)

除此之外,一些太老的外掛比如判斷版本號時沒有考慮到8.0的可能需要稍加修改。

怎麼取得最新的 Vim 8.0?

大家如果要試用 vim 8.0的話,可以自己下載程式碼編譯

git clone https://github.com/vim/vim.git 
  • 1

Windows 下面有直接二進位制下載:

ftp://ftp.vim.org/pub/vim/pc/gvim80.exe
  • 1

Windows 下還有每日的自動 daily build:

https://github.com/vim/vim-win32-installer/releases/
  • 1

Mac 下面使用的話,可以直接 brew 安裝一個最新的vim,原來安裝過的話,brew update一下即可。或者使用最新的 MacVim(整合了7.4.2364),同樣和 8.0幾乎沒區別了

當然Ubuntu已經為我們提供了ppa源來安裝

sudo add-apt-repository ppa:jonathonf/vimsudo apt updatesudo apt install vim
  • 1
  • 2
  • 3

如果您想要解除安裝它, 請使用如下命令

sudo apt remove vimsudo add-apt-repository --remove ppa:jonathonf/vim
  • 1
  • 2

vim-version資訊

雖然vim版本升級了, 但是我們的外掛也需要進一步更新啊, 希望我們的外掛趕緊更新啊, 來支援更多的vim特性吧