歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu 14.04升級Vim7.4到8.0

Ubuntu 14.04升級Vim7.4到8.0

日期:2017/2/28 13:47:28   编辑:Linux教程

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

早在今年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 

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

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

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

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

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

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

sudo add-apt-repository ppa:jonathonf/vim
sudo apt update
sudo apt install vim

如果您想要卸載它, 請使用如下命令

sudo apt remove vim
sudo add-apt-repository --remove ppa:jonathonf/vim

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

Copyright © Linux教程網 All Rights Reserved