vi和vim編輯器常用命令有什么區(qū)別? 學vi和vim編輯器看這一篇就夠了

在Linux如果系統(tǒng)中需要編輯文件,一般可以使用vi和vim編輯器編輯文件。它們都是多模式編輯器,區(qū)別在于vim是vi的升級版本,它不僅與vi的所有指令兼容,還具有一些新的特性。這篇文章將帶你一起學習vi和vim編輯器相關(guān)知識點。
對于java零基礎(chǔ)對新手來說,學習vi和vim編輯器首先要知道的是兩者的概念:vi是linux下標準的純字符界面文本編輯器。由于不是圖形界面,相關(guān)操作必須通過鍵盤輸入命令完成,需要記住一些常用的操作命令
vim是vi的升級版,與vi完全兼容,vim也可以作為vi完全使用。vim在vi的基礎(chǔ)上添加了語法著色等一些功能。
一、vi與vim的區(qū)別
1、多級撤消
在vi編輯器中,按u只能撤消上次命令,而在vim里可以無限制的撤消。
2、易用性
vi編輯器只能運行于unix中,而vim不僅可以運行于unix,還可用于windows、mac等多操作平臺。
3、語法加亮
vim可以用不同的顏色來加亮你的代碼。
如下兩圖對比:
vi main.c
vim main.c
4、可視化操作
vim不僅可以在終端運行,也可以運行于windows、 mac os、 windows。
5、對vi完全兼容
可以把vim當成vi來使用。
小結(jié):vi和vim都是Linux中的編輯器,不同的是vim比較高級,可以視為vi的升級版本。vi使用于文本編輯,但是vim更適用于coding。
二、VI模式
1、命令行模式 (command mode/一般模式)
任何時候,不管用戶處于何種模式,只要按一下“ESC”鍵,即可使Vi進入命令行模式;我們在shell環(huán)境(提示符為$)下輸入啟動vi命令,進入編輯器時,也是處于該模式下。
在該模式下,用戶可以輸入各種合法的vi命令,用于管理自己的文檔。此時從鍵盤上輸入的任何字符都被當做編輯命令來解釋,若輸入的字符是合法的Vi命令,則vi在接受用戶命令之后完成相應的動作。但需注意的是,所輸入的命令并不在屏幕上顯示出來。若輸入的字符不是Vi的合法命令,vi會響鈴報警。
2、文本輸入模式 (input mode/編輯模式)
在命令模式下輸入插入命令i(insert)、附加命令a (append)、打開命令o(open)、修改命令c(change)、取代命令r或替換命令s都可以進入文本輸入模式。在該模式下,用戶輸入的任何字符都被vi當做文件內(nèi)容保存起來,并將其顯示在屏幕上。在文本輸入過程中,若想回到命令行模式下,按”ESC”鍵即可。
3、末行模式 (last line mode/指令列命令模式)
末行模式也稱轉(zhuǎn)義模式。
vi和Ex編輯器的功能是相同的,二者主要區(qū)別是用戶界面。在vi中,命令通常是單個鍵,例如i、a、o等;而在Ex中,命令是以按回車鍵結(jié)束的正文行。vi有一個專門的“轉(zhuǎn)義”命令,可訪問很多面向行的Ex命令。
在命令模式下,用戶按“:”鍵即可進入末行模式下,此時vi會在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個“:”作為末行模式的提示符,等待用戶輸入命令。多數(shù)文件管理命令都是在此模式下執(zhí)行的(如把編輯緩沖區(qū)的內(nèi)容寫到文件中等)。末行命令執(zhí)行完后,vi自動回到命令模式。
三、VIM模式
1、正常模式 (Normal-mode)
啟動vim后默認處于正常模式(即命令行模式)。不論位于什么模式,按下<Esc>鍵(有時需要按兩下)都會進入正常模式。
2、插入模式 (Insert-mode)
在正常模式中按下i, a, o, I,A,O鍵,會進入插入模式。現(xiàn)在只用記住按i鍵會進行插入模式。在插入模式中,擊鍵時會寫入相應的字符。
3、命令模式 (Command-mode)
在正常模式中,按下:(英文冒號)鍵,會進入命令模式。
在命令模式中可以執(zhí)行一些輸入并執(zhí)行一些vim或插件提供的指令,就像在shell里一樣。這些指令包括設(shè)置環(huán)境、文件操作、調(diào)用某個功能等等。
4、可視模式 (Visual-mode)
在正常模式中按下v,V,<ctrl>+v,可以進入可視模式。
可視模式中的操作有點像拿鼠標進行操作,選擇文本的時候有一種鼠標選擇的即視感,有時候會很方便。
四、VI與VIM的常用命令
注:由于VI與VIM在命令上幾乎相同,所以這里那VIM為例。
1、模式轉(zhuǎn)換
正常-->輸入:以下這幾個參數(shù)實現(xiàn)的功能都是轉(zhuǎn)為輸入模式,只不過轉(zhuǎn)換后的光標所在的位置不同(感興趣可以試一試,雖然意義不大?。?p>i:在當前光標所在字符的前面,轉(zhuǎn)為輸入模式;a:在當前光標所在字符的后面,轉(zhuǎn)為輸入模式;
o:在當前光標所在行的下方,新建一行,并轉(zhuǎn)為輸入模式;
I:在當前光標所在行的行首,轉(zhuǎn)為輸入模式;
A:在當前光標所在行的行尾,轉(zhuǎn)為輸入模式;
O:在當前光標所在行的上方,新建一行,并轉(zhuǎn)為輸入模式;
輸入-->正常:
ESC
正常-->末行:
:(英文冒號)
末行-->正常:
ESC,ESC
注意:輸入模式和末行模式之間不能直接切換。
2、關(guān)閉文件(末行模式)
:q退出;:q!不保存退出;
:w保存;
:w!強行保存;
:wq保存退出
:wq!強制保存并退出
注意:在正常模式下按組合鍵shift zz可以保存并退出
3、移動光標(正常模式)
1)逐字符移動:
h: 左;l: 右;
j: 下;
k: 上;
#h: 移動#個字符
2)以單詞為單位移動
w: 移至下一個單詞的詞首;e: 跳至當前或下一個單詞的詞尾;
b: 跳至當前或前一個單詞的詞首;
#w: 移動#個單詞
3)行內(nèi)跳轉(zhuǎn):
0: 絕對行首;^: 行首的第一個非空白字符;
$: 絕對行尾
4)行間跳轉(zhuǎn)
#G:跳轉(zhuǎn)至第#行;gg: 第一行;
G:最后一行
5)末行模式
.: 表示當前行;$: 最后一行;
#:第#行;
+#: 向下的#行
4、翻屏(正常模式)
Ctrl+f: 向下翻一屏;Ctrl+b: 向上翻一屏;
Ctrl+d: 向下翻半屏;
Ctrl+u: 向上翻半屏
5、復制字符
1)正常模式 復制:
yy:復制當前行nyy:復制當前行至下面的n行
粘貼:
p:粘貼到光標的后面P:粘貼到光標的前面
2)可視模式 復制:
y:復制當前行ny:復制當前行至下面的n行
粘貼:
p:粘貼到光標的后面P:粘貼到光標的前面
6、刪除字符(正常模式)
x: 刪除光標所在處的單個字符;#x: 刪除光標所在處及向后的共#個字符;
d$或D:從當前光標處刪除至行尾;
d^:從當前光標處刪除之行首;
dd: 刪除當前光標所在行;
#dd: 刪除包括當前光標所在行在內(nèi)的#行;
注:dd相當于剪切操作,如果你dd之后按p或者P可以進行粘貼。
7、替換字符
r:替換單個字符(按完r在按你要替換的字符即可)R:替換多個字符(從你要替換的位置開始替換,直至你退出正常模式)
8、撤銷編輯操作:u
u:撤消前一次的編輯操作;#u:直接撤消最近#次編輯操作; 溫馨提示:連續(xù)u命令可撤消此前的n次編輯操作;
9、將另外一個文件(/path/sunhui.txt)的內(nèi)容填充在當前文件夾中
:r /path/sunhui.txt :填充到當前文件所在光標的后面
10、修改vim配置文件
vim~/.vimrc:修改當前用戶的vim配置文件 vim /etc/vimrc:修改所有用戶的vim配置文件 例:在當前用戶的vim配置文件中添加顯示行數(shù)的命令 vim~/.vimrc:在末行添加setnu即可
11、拓展(末行模式)
1)顯示或取消顯示行號
:set nu //顯示:set number //顯示:set nonu //取消
2)設(shè)置語法高亮
:syntax on //開啟:syntax off //關(guān)閉
3)分屏
:vsp xxx.x //將兩個文件垂直分屏 :ctrl+w w//切屏
注:該特性當前有效,如果想要永久有效需修改配置文件
相關(guān)文章
探索Linux的強大文本編輯器: 關(guān)于vi編輯器看這篇文章就夠了
Linux、macOS上經(jīng)常使用vi編輯器,但它需要神秘符號才能退出,該怎么使用vi編輯器呢?詳細請看下文介紹2025-01-14Vim編輯器怎么增加和刪除多行注釋? Vim批量注釋及刪除注釋的技巧
在使用vi/vim編輯器對代碼或者配置文件編輯的時候,我們經(jīng)常會需要對多行添加注釋或者刪除多行的注釋,下面我們就來看看詳細教程2025-01-17vim編輯器怎么保存退出編輯狀態(tài)? Vim編輯器文件保存與退出技巧
Vim編輯器是一款強大的文本編輯工具,常用于Linux系統(tǒng),以下是關(guān)于Vim編輯器的文件保存和退出技巧2025-01-17- Vim是一款常用的文本編輯器,具有強大的功能和高度的可定制性,在本文中,我們將詳細介紹Vim的常用命令,詳細請看下文介紹2024-02-21
Android Studio怎么下載安裝IdeaVim插件?
Android Studio怎么下載安裝IdeaVim插件?Android Studio編程開發(fā)的時候,想要安裝IdeaVim插件,該怎么操作呢?下面我們就來看看詳細的教程,需要的朋友可以參考下2020-11-30- vim編輯器文本怎么復制到行首或行尾?vim編輯器中復制的文本,想要復制到首行或者行尾,該怎么實現(xiàn)呢?下面我們就來看看詳細的教程,需要的朋友可以參考下2019-11-19
vim怎么實現(xiàn)上下行合并為一行? vim合并行的教程
vim怎么實現(xiàn)上下行合并為一?vim編輯器編輯文本的時候,發(fā)現(xiàn)失誤輸入一個enter換行,導致一行文本顯示兩行,該怎么合并兩行文本呢?想,我們就來看看vim合并行的教程,需要2019-11-18- vim怎么顯示標尺?vim編輯器在使用和的時候,文本很多的時候,快速定位文本就很重要,這種時候就需要使用標尺,下面我們就來看看vim啟用與停用標尺的教程,詳細請看下文介紹2019-11-17
- vim怎么使用替換模式修改字符?vim編輯器編輯文本的時候,想要修改字符,刪除再插入比較麻煩,如果直接使用替換就很方便,下面我們就來看看詳細的教程,需要的朋友可以參考2019-11-17
- vim三種模式怎么使用?vim中有三種基本模式,可以對文本進行操作,這三種模式有什么區(qū)別嗎?下面我們就來看看vim編輯器三種模式介紹,需要的朋友可以參考下2019-11-16