Linux中國

十年生聚,Vim 8.0 發布了!

什麼是 Vim

雖然說我認為能看到這篇文章的人應該都知道 Vim 是什麼,不過作為一篇正式宣告 Vim 8.0 發布的新聞,我還是鄭重其事的來給 Vim 做個說明吧。

Vim 是經典的 UNIX 編輯器 Vi 的深度改良版本。它增加了許多功能,包括:多級撤銷、格式高亮、命令行歷史、在線幫助、拼寫檢查、文件名補完、塊操作、腳本支持,等等。除了字元界面版本之外,它也有圖形界面版本(比如 gVim)。雖然 Vi 還在繼續維護當中,但是大部分人都只在使用 Vim 了,你所見到和聽到的大多是指 Vim——雖然你的命令名可能是 Vi。

這個編輯器常用於程序員、系統管理員、黑客們進行編程和文本編輯。不像某些編輯器,它所有的命令都採用普通的鍵盤字元,因此在你的如飛般的十指之下,它的輸入和操作速度非常快。當然,你也可以將功能鍵映射到某些命令上,甚至還可以支持滑鼠。

除了 Linux 之外,Vim 還可以運行在 MS-Windows (NT、2000、XP、Vista、7、8、10)、蘋果、VMS 和幾乎所有的 UNIX 分支上。 Vim 的舊版本還可以運行在 MS-DOS、MS-Windows 95/98/Me、Amiga DOS、Atari MiNT、BeOS、RISC OS 和 OS/2 上,不過新版本不再支持了。

主要更新

8.0 版本中除了大量的細節改進和錯誤修復以外,主要支持以下的新功能:

支持非同步 I/O 和 通道 channel

Vim 現在可以和後台的其它進程進行消息交互。這樣就可以開發一個運行在後台的伺服器,並將結果發回給 Vim,這種交互方式稱之為 通道 channel 。在通道中使用 JSON 傳遞消息,因此你可以用任何一種語言來開發後台伺服器,只需要它支持 JSON 即可。通過支持這種技術可以實現一些功能非常複雜的插件。

任務

Vim 現在也能啟動一個任務,並與之通訊或停止它。比如說,可以啟動一個用於自動補完、格式檢查等功能的進程。在任務和 Vim 之間的通訊是通過通道完成的。

定時器

另外一個非同步工作的是 定時器 timer ,可以啟動一個定時器並不斷重複調用某個函數。比如:let tempTimer = timer_start(4000, 'CheckTemp')

Partial

Vim 已經有了一個 Funcref 功能,這是一個函數引用。partial 也是一個函數引用,但是它可以綁定參數或字典。這對於頻道或定時器的回調很有用。 比如:let tempTimer = timer_start(4000, function('CheckTemp', ['out']))

Lambda 和閉包

lambda 是創建函數最快的方式,比如:{args -> expr}。它對於 filter() 和 map() 很有用,而且還支持函數參數。如:call filter(mylist, {idx, val -> val > 20})

lambda 可以使用定義 lambda 表達式範圍內的變數,這常被稱之為 閉包 closure

插件包

插件越來越多了,為了更好的管理插件,因此支持了插件包的支持。

窗口 ID

以前 Vim 中的窗口只能通過數字編號來訪問,當打開、關閉或移動窗口時,這個數字也隨之而變。現在每個窗口都有了一個唯一的 ID,可以更方便的找到它們。

折行縮進

新增的 'breakindent' 選項可以保證在折行時維持縮進不變。

Windows:支持 DirectX

新增的 'renderoptions' 選項可以在 Windows 上切換到 DirectX (DirectWrite)引擎上。

支持 GTK+ 3

一般用戶很難注意到 GTK+ 3 和 GTK+ 2 的區別。對這兩者的配置仍然都支持。

更多的變化細節,可以參考這裡

下載

得到最新版本的 Vim 的最好方式是使用 Git :

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

更多信息可參考: http://www.vim.org/git.php

UNIX/Linux

源代碼及運行時文件: ftp://ftp.vim.org/pub/vim/unix/vim-8.0.tar.bz2

在 Linux 下,你總可以使用你的軟體包管理器來安裝最新的 Vim 8.0,不過如果你的發行版倉庫還沒有提供的新的 8.0 的話,你可以享受一下自己編譯的樂趣。

如果你希望按照你自己的想法定製一個 Vim,那你可以下載源代碼,並在 src 目錄裡面進行編譯,可以參考 src/INSTALL 了解如何編譯和安裝。

Windows

安裝程序:ftp://ftp.vim.org/pub/vim/pc/gvim80.exe

運行時文件: ftp://ftp.vim.org/pub/vim/pc/vim80rt.zip

Windows 95/98/NT/2000/XP/7 圖形界面版: ftp://ftp.vim.org/pub/vim/pc/gvim80.zip

帶有 OLE 支持的版本: ftp://ftp.vim.org/pub/vim/pc/gvim80ole.zip

Windows NT/2000/XP/7 字元界面版:ftp://ftp.vim.org/pub/vim/pc/vim80w32.zip

8.0 不再支持的版本

  • 16 位的 DOS、OS/2 和 Amiga 版本
  • 32 位的 MS-DOS/Windows 95/98 的字元界面版
  • 16 位的 MS-Windows 版本

文檔與幫助

對於初學者來說,有一個叫 vimtutor 的一小時教程可以看看(當然是英文的),請通過 :help tutor 了解更多信息。

學習 Vim 的最好方式之一是在 Vim 中使用:help,如果你還沒有 Vim 二進位程序,你也可以看看 runtime/doc/help.txt,它包含了對其它文檔的指引。這個用戶手冊就像一本書一樣,推薦使用它來學習 Vim。詳見 :help user-manual


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國