Linux下編譯安裝Vim8.0

来源:http://www.cnblogs.com/goxin/archive/2017/01/04/6249433.html
-Advertisement-
Play Games

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


什麼是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 上,不過新版本不再支持了。

Vim主要更新

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的UNIX/Linux版下載:

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

.tar.bz2編譯安裝

解壓縮:tar jxf vim-8.0.tar.bz2
切換目錄:cd /vim80/src
配置:./configure

註意:在配置過程(檢查依賴關係)可能會碰到下麵的問題:

no terminal library found
checking for tgetent()… configure: error: NOT FOUND!
      You need to install a terminal library; for example ncurses.
      Or specify the name of the library with –with-tlib.

ncurses是一個比較老的庫

解決方法:sudo apt install libncurses5-dev

編譯:make
安裝:make install

這樣打開終端輸入vim直接可以進入

Vim文檔與幫助

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

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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • openresty 前端開發入門五之Mysql篇 這章主要演示怎麼通過lua連接mysql,並根據用戶輸入的name從mysql獲取數據,並返回給用戶 操作mysql主要用到了lua resty mysql庫,代碼可以在 "github" 上找得到 而且上面也有實例代碼 由於官網給出的例子比較基本, ...
  • HBase定義 HBase 是一個高可靠、高性能、面向列、可伸縮的分散式存儲系統,利用Hbase技術可在廉價PC Server上搭建 大規模結構化存儲集群。 HBase 是Google Bigtable 的開源實現,與Google Bigtable 利用GFS作為其文件存儲系統類似, HBase 利 ...
  • 在連接mysql jdbc時候,拋出了 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communication link failure, message from server: "Can't get  ...
  • 如果我想得到這樣一個結果集:分組排序,並且每組限定記錄集的數量,用一條SQL語句能辦到嗎? 比如說,我想找出學生期末考試中,每科的前3名,並按成績排序,只用一條SQL語句,該怎麼寫? 表[TScore]的結構 code 學號 char subject 科目 int score 成績 int 可以這樣 ...
  • 親測配置: 系統:Linux lite 3.2 x86_64(Ubuntu其他版本可參考修改) 筆記本:華碩(asus)1201N 達到的效果: 可以正常使用Fn+F5調暗,Fn+F6調亮. 設置步驟: 修改/etc/default/目錄下文件grub 將15~16行內容: 修改為如下內容 備註:上 ...
  • 出於安全性的考慮,不建議在bash腳本中註釋掉不使用的代碼。也就是說如果某段代碼不使用了,那麼應該刪除掉,而不是簡單地註釋掉。假如你突然意識到這一點,而以前並沒有遵從這個原則,現在需要找出腳本中的註釋性代碼,這可能是一個不小的工作量,讓我們寫一個腳本來幫助你吧,準確性無法達到百分之百,但是能夠提升效 ...
  • 一、共用庫 共用庫使得可執行文件中不再需要包含常用的庫函數,而只需在所有進程都可存取的存儲區中保存這種庫常式的一個副本。程式第一次執行的時候或第一次調用某個庫函數的時候,用動態鏈接方法將程式與共用庫函數相鏈接,這減少了每個可執行文件的長度,但增加了一些運行時間開銷。另一個優點就是可以用庫函數的新版本 ...
  • 一. 準備工作 1. 樹莓派主板 型號:樹莓派3 B型 處理器:四核64位ARM Cortex-A53 CPU 內核架構:ARMv8 2. 一張大於8G的TF卡(本人用的是32G的,也作為PiLFS用) 3. 一臺筆記本電腦,一根網線 4. 點擊此找到並下載 Raspbian 系統 初學者建議推薦選 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...