溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

vi與vim的區(qū)別

發(fā)布時間:2020-08-07 14:57:33 來源:網(wǎng)絡(luò) 閱讀:1113 作者:啊凱linux 欄目:系統(tǒng)運維

Vim是從 vi 發(fā)展出來的一個文本編輯器 。代碼補完、編譯及錯誤跳轉(zhuǎn)等方便編程的功能特別豐富,在程序員中被廣泛使用。和Emacs 并列成為類Unix系統(tǒng) 用戶最喜歡的編輯器。

Vim的第一個版本由Bram Moolenaar 在1991年發(fā)布。最初的簡稱是Vi IMitation ,隨著功能的不斷增加,正式名稱改成了Vi IMproved。現(xiàn)在是在開放源代碼 方式下發(fā)行的自由

首先我們看一下文本

第一個vi編輯的內(nèi)容 

vi與vim的區(qū)別 、

第二個我們看下vim的效果


vi與vim的區(qū)別


Vim 具有6種基本模式和5種派生模式。

1.基本模式

(1)普通模式

在普通模式中,用戶可以執(zhí)行一般的編輯器命令,比如移動光標(biāo),刪除文本等等。這也是 Vim 啟動后的默認(rèn)模式。這正好和許多新用戶期待的操作方式相反(大多數(shù)編輯器默認(rèn)模式為插入模式)。

Vim 強大的編輯能力中很大部分是來自于其普通模式命令。普通模式命令往往需要一個操作符結(jié)尾。例如普通模式命令 "dd" 刪除當(dāng)前行,但是第一個 "d" 的后面可以跟另外的移動命令來代替第二個 "d",比如用移動到下一行的 "j" 鍵就可以刪除當(dāng)前行和下一行。另外還可以指定命令重復(fù)次數(shù),"2dd"(重復(fù) "dd" 兩次),和 "dj" 的效果是一樣的。用戶學(xué)習(xí)了各種各樣的文本間移動/跳轉(zhuǎn)的命令和其他的普通模式的編輯命令,并且能夠靈活組合使用的話,能夠比那些沒有模式的編輯器更加高 效的進行文本編輯。

在普通模式中,有很多方法可以進入插入模式。比較普通的方式是按 "a"(append/追加)鍵或者 "i"(insert/插入)鍵。

(2)插入模式

在這個模式中,大多數(shù)按鍵都會向文本緩沖 中插入文本。大多數(shù)新用戶希望文本編輯器編輯過程中一直保持這個模式。

在插入模式中,可以按 ESC 鍵回到普通模式。

(3)可視模式

這個模式與普通模式比較相似。但是移動命令會擴大高亮的文本區(qū)域。高亮區(qū)域可以是字符、行或者是一塊文本。當(dāng)執(zhí)行一個非移動命令時,命令會被執(zhí)行到這塊高亮的區(qū)域上。Vim 的"文本對象"也能和移動命令一樣用在這個模式中。

(4)選擇模式

這個模式和無模式編輯器的行為比較相似(Windows標(biāo)準(zhǔn)文本控件的方式)。這個模式中,可以用鼠標(biāo)或者光標(biāo)鍵高亮選擇文本,不過輸入任何字符的話,Vim 會用這個字符替換選擇的高亮文本塊,并且自動進入插入模式。

(5)命令行模式

在命令行模式中可以輸入會被解釋成并執(zhí)行的文本。例如執(zhí)行命令(":" 鍵),搜索("/" 和 "?" 鍵)或者過濾命令("!" 鍵)。在命令執(zhí)行之后,Vim 返回到命令行模式之前的模式,通常是普通模式。

(6)Ex 模式

這和命令行模式比較相似,在使用 ":visual" 命令離開 Ex 模式前,可以一次執(zhí)行多條命令。

2. 派生模式

(1)操作符等待模式

這個派生模式指普通模式中,執(zhí)行一個操作命令后 Vim 等待一個"動作"來完成這個命令。Vim 也支持在操作符等待模式中使用"文本對象"作為動作,包括 "aw" 一個單詞(a word)、"as" 一個句子(a sentence)、"ap" 一個段落(a paragraph)等等。

比如,在普通模式下 "d2as" 刪除當(dāng)前和下一個句子。在可視模式下 "apU" 把當(dāng)前段落所有字母大寫。

(2)插入普通模式

這個模式是在插入模式下按下ctrl-o鍵的時候進入。這個時候暫時進入普通模式,執(zhí)行完一個命令之后,Vim 返回插入模式

(3)插入可視模式

這個模式是在插入模式下按下ctrl-o鍵并且開始一個可視選擇的時候開始。在可視區(qū)域選擇取消的時候,Vim 返回插入模式。

(4)插入選擇模式

通常這個模式由插入模式下鼠標(biāo)拖拽或者shift方向鍵來進入。當(dāng)選擇區(qū)域取消的時候,Vim 返回插入模式。

(5) 替換模式

這是一個特殊的插入模式,在這個模式中可以做和插入模式一樣的操作,但是每個輸入的字符都會覆蓋文本緩沖中已經(jīng)存在的字符。在普通模式下按 "R" 鍵進入。

其他

Evim

Evim 是一個特殊的GUI 模式用來盡量的表現(xiàn)的和"無模式"編輯器一樣。編輯器自動進入并且停留在插入模式,用戶只能通過菜單、鼠標(biāo)和鍵盤控制鍵來對文本進行操作??梢栽诿钚邢螺斎?"evim" 或者 "vim -y" 進入。在 Windows 下,通常也可以點擊桌面上 Evim 的圖標(biāo)。

 功能

 概要

Vim 提供了文本形式的大量文檔 。并且 Vim 為了能夠快速找到問題的解決方案,提供了各種各樣的功能。根據(jù) Vim 自己的幫助文件語法,關(guān)鍵字 會被各種各樣醒目的顏色表示出來。可以用快捷鍵 象在瀏覽器 中那樣瀏覽幫助文件。在GUI 版的Vim中還可以使用鼠標(biāo) 在 幫助文件中移動。方便用戶尋找問題解決方案的功能還不止這些,其中最主要的是 ':helpgrep' 命令。使用這條命令,用戶可以在所有幫助文件中搜索想要察看的內(nèi)容,用':cwindows'可以在另一個窗口中表示搜索的結(jié)果,根據(jù)搜索的結(jié)果自動在幫 助文件內(nèi)跳轉(zhuǎn)。使用Vim的幫助功能,更可以在搜索的結(jié)果中,繼續(xù)進行搜索。

程序開發(fā)相關(guān)功能

Vim 是程序員 為了方便的編寫程序而開發(fā)的編輯器 。Vim 具有可以讓寫代碼的工作變得輕松愉快的各種各樣功能。和集成開發(fā)環(huán)境 一樣,Vim 具有可以配置成在編輯代碼源文件之后直接進行編譯 的功能。編譯 出錯的情況下,可以在另一個窗口中顯示出錯誤。根據(jù)錯誤信息,直接跳轉(zhuǎn)到正在編輯的源文件出錯位置。代碼高亮,文本折疊,上下文關(guān)聯(lián)補完都是對程序員 特別有幫助的功能(參考 ':help quickfix')

文件比較

可以逐行的對文本文件進行比較。Vim 可以并排顯示兩個版本的文件,同時以各種各樣的顏色來表示有差別部分。改變過、新增的或者是被刪除的行會以顏色高亮來強調(diào),沒有改變過的部分則會被自動折疊表示。

對于已經(jīng)在vim中打開的兩個緩沖區(qū),分別使用:diffthis 之后將會對這兩個緩沖區(qū)的內(nèi)容進行比較,被比較的緩沖區(qū)可以是一個尚未存盤的內(nèi)存中的緩沖區(qū)。

在比較兩個文件的不同之處時,可以用:diffget和:diffput命令對每一處不同進行雙向的同步,也可以在比較不同時對內(nèi)容進行其它編輯,然后用:diffupdate 對最新內(nèi)容重新進行比較。

在瀏覽兩個文件的不同之處時,可以用[c和]c兩個Normal模式的命令直接跳轉(zhuǎn)到上一個和下一個不同之處。

可以通過diffopt 等選項更精細地控制哪些區(qū)別被認(rèn)為是真正的不同之處,比如可以設(shè)置比較時忽略空白字符數(shù)量的不同。

Unix 下可以用 vimdiff 命令來使用這個功能。

 腳本語言

Vim 有她自己的腳本語言 ,使用腳本語言寫成的宏 可以實現(xiàn)自動執(zhí)行復(fù)雜的操作。用 -s 選項啟動 Vim ,或者直接切換到宏 所在目錄 使用 ':source' 命令都可以執(zhí)行 Vim 腳本。Vim 的配置文件就可以作為 Vim 腳本的一個范例,Unix 和Linux 下配置文件名是.vimrc,Windows 下配置文件一般叫做 _vimrc。這個文件在啟動 Vim 的時候被自動執(zhí)行。Vim 腳本語言 可以使用 Vim 命令行 模式的所有命令 ,使用 ':normal' 命令還可以使用通常模式中的所有命令。Vim 腳本語言具有數(shù)字,字符串兩種數(shù)據(jù)類型 。用數(shù)字代表布爾類型 ,0代表假,之外的數(shù)全代表真。最新的 Vim 7 更提供了列表 、關(guān)聯(lián)數(shù)組 等高級數(shù)據(jù)結(jié)構(gòu) 。Vim 腳本語言也擁有各種比較運算符 和算術(shù)運算符 。控制結(jié)構(gòu)實現(xiàn)了 if分支 和 for/while 循環(huán)。用戶還可以自己定義函數(shù) ,并且可以使用超過100種的預(yù)定義函數(shù) 。編寫成的腳本文件可以在調(diào)試模式中進行調(diào)試。

不足之處

 

它們都是多模式編輯器 ,不同的是vim 是vi的升級版本,它不僅兼容vi的所有指令 ,而且還有一些新的特性在里面。
vim的這些優(yōu)勢主要體現(xiàn)在以下幾個方面:

1、多級撤消
我們知道在vi里,按 u只能撤消上次命令,而在vim里可以無限制的撤消。

2、易用性
vi只能運行于unix中,而vim不僅可以運行于unix,windows ,mac等多操作平臺。

3、語法加亮
vim可以用不同的顏色來加亮你的代碼。

4、可視化操作
就是說vim不僅可以在終端運行,也可以運行于x window、 mac os、 windows。

5、對vi的完全兼容
某些情況下,你可以把vim當(dāng)成vi來使用。


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI