vim使用指南

2021-07-29 16:51:47 字數 4089 閱讀 1314

最近在弄linux伺服器,突然發現linux上面用vim編輯器建立檔案、編輯檔案簡直不要太方便,話說咱大mac也有吧,順帶就去學了一些基本命令,現在記錄寫來給大家分享。

在vim中,一般使用h、j、k、l來移動游標,h表示游標向左,l表示游標向右,k表示游標向上,j表示游標向下。

當我們使用vim命令開啟或者建立乙個檔案是,預設進入的是普通模式,在普通模式我們可以進行游標移動,那麼如何輸入文字了?

當我們按下i、i、a、a、o、o、s、s時就會進入插入模式,只不過會有一些不同而已:

i表示在當前游標前插入文字; 

i表示在當前游標所在行的行首插入文字; 

a表示在當前游標後插入文字; 

a表示在當前游標所在行的行末插入文字; 

o表示在當前游標所在行的下方另開一行插入文字; 

o表示在當前游標所在行的上方另開一行插入文字; 

s表示刪除當前游標所指定的字元插入文字; 

s表示刪除當前游標所在的行並插入文字。

當我們輸入完文字以後,按下esc按鈕就會推出插入模式。

當我們進入到普通模式後,如何儲存或者不儲存檔案了?很簡單,同時按下shift 和分號按鍵,這時候在終端商左下角會顯示乙個冒號,表示進入了命令列模式,輸入wq然後按下enter就會儲存檔案,輸入q!則會不儲存檔案。

but,有沒有覺得很麻煩,為什麼我編輯文字還要切換模式啊,這好麻煩,有沒有更簡單的一步到位的模式? 

必須有啊,那就是普通模式,接下來,讓我們進入到神奇的普通模式去吧。

在普通模式下,使用x可以刪除游標所在字元,那麼如何刪除大量字元了?比如刪除一行,刪除一段甚至刪除整個文字。

首先我們需要了解表示操作範圍的命令,在vim中,0(^)、$、b、e、w、gg、g來進行範圍操作:

0(^)表示將游標移到當前行的行首; 

$表示將游標移到當前行的行末; 

b表示將游標移到當前游標所在單詞的起始處; 

e表示將游標移到當前游標所在單詞的結尾處; 

w表示將游標移到下乙個單詞的的起始處; 

gg表示將游標移到文字開頭; 

g表示將游標移到文字末尾。

注意:上面的單詞,如果是英文就指的是英文單詞,並且如果英文單詞和數字放一起會被認為是乙個單詞。特殊符號也會被當做乙個單詞。如果是中則指的是一句不含標點的話,標點符號也是乙個單詞,但是空格不算,不過空格分開的兩邊可以看做是兩個單詞。舉個例子,「你好我是單詞」這句話是乙個單詞,「你好 我是單詞」這句話則是兩個單詞,「你好,我是單詞。」這句話則有四個單詞。

了解了範圍命令以後,我們就可以進行選擇刪除了,選擇刪除命令是d + 範圍命令,即:

d0(d^)表示刪除當前游標所在字元(不包含該字元)到游標所在行行首的所有字元; 

d$表示刪除當前游標所在字元(包含該字元)到游標所在行行末的所有字元; 

de表示刪除當前游標所在字元(包含該字元)到單詞末尾的所有字元; 

db表示刪除當前游標所在字元(不包含該字元)到單詞開頭的所有字元; 

dw表示表示刪除當前游標所在字元(包含該字元)到下乙個單詞起始處的所有字元; 

dgg表示刪除游標所在行到文字開頭的所有字元; 

dg表示刪除游標所在行到文字末尾的所有字元; 

dd表示刪除當前游標所在行的所有字元; 

dh表示刪除當前游標所在字元的前乙個字元; 

dl表示刪除當前游標所在字元; 

dj表示刪除當前游標所在行以及下一行的所有字元; 

dk表示刪除當前游標所在行以及上一行的所有字元;

好難記。。。

上面我們學習了刪除命令,其實在vim中,不是刪除了內容,而是對內容進行了剪下而已,所以我們可以使用p、p來進行貼上:

如果剪下的是整行字符,那麼:

p表示將內容貼上游標所在行的下一行; 

p表示將內容貼上到游標所在行的上一行。

如果剪下的是一部分字元,那麼:

p表示將內容貼上到游標後; 

p表示將內容貼上到游標前。

如果想要複製一段字元,則需要使用y命令,格式為:y+數字+範圍選擇符:

yyp(p)表示複製在當前行下(上)一行複製當前行的字元; 

y2yp(p)表示複製在當前行下(上)一行複製當前行以及下一行的字元; 

y0p(p)表示複製游標當前字元至行首所有字元到指定游標後(前); 

y$p(p)表示複製游標當前字元在內至行末所有字元到指定游標後(前); 

ybp(p)表示複製游標當前字元到單詞起始處到指定游標後(前); 

yep(p)表示複製游標當前字元在內到單詞結尾處到指定游標後(前); 

ygp(p)表示複製當前游標所在行至文字結尾所有字元到當前游標所在行下(上)一行; 

yggp(p)表示複製當前游標所在行至文字起始處所有字元到當前游標所在行下(上)一行;

如果想要替換某乙個字元,則需要使用數字+r命令:

r+新字元表示將游標所在字元替換為新字元; 

數字n+r+新字元表示將從游標開始到下n個字元統一替換為新字元。

那麼問題來了,我要批量替換字元怎麼辦? 

只需要按下r,然後就可以從游標處開始批量替換字元了。

soeasy!

當你使用vim編輯檔案時,加入你想檢視當前檔案狀態,可以使用control(ctrl)+g檢視當前檔案狀態。

從左向右會顯示檔名、游標所在行數、總行數、游標所在行數比、游標所在位置

在vim中,有一些很方便的快捷鍵可以供我們使用:

當我們要跳轉到指定行數,則需要使用行數+g跳轉。當然也可以使用:行數跳轉。

當我們在用vim編輯**時,發現有很多對括號,我們可以使用%來定位指定括號的另一半,這對**人士簡直方便極了。

當我們用vim檢視**時,發現需要縮排,則可以使這個按鈕來進行縮排,使用按鈕進行反縮排。

在vim中,我們可以使用/+字元+enter來搜尋內容,搜尋的內容將會以高亮顯示,並且在底部會顯示內容的位置。當搜尋內容不止乙個時,按n跳轉下乙個,n跳轉到上乙個。

注意:當搜尋的內容不止乙個時,vim缺省會以游標所在位置作為開頭來顯示,所以如果我們想要從頭搜尋,則先需要按gg跳轉至文字起始處。
不過我們還可以使用?+字元+enter來搜尋內容,只不過這種搜尋與上面的搜尋功能完全相反。何謂相反,意思就是按n跳轉上乙個,n跳轉到下乙個,而且會從游標處向前搜尋。

那麼問題來了,當我們搜尋完了,發現,還是有很多會以高亮顯示,怎麼辦了?

只需要:nohl就可以取消高亮了

在vim中,如果我們搜尋.、*、、%、/、?、$、~這幾個字元時,需要在前面新增反斜槓\才可以搜尋。
既然搜尋到了結果,那麼如何替換了?

:s/舊字元/新字元+enter就可以將舊字元替換為新字元,需要注意的是,此方法只會替換游標所在行行的字元,如果游標所在行沒有舊字元就會報錯,如果游標所在行存在多個搜尋結果,則只會替換第乙個結果。

如果需要替換整行則只需要在後面新增/g即可,即:s/舊字元/新字元/g。

如果我們要替換整個文字,則需要%s/舊字元/新字元/g。

當替換內容較多,但是有一些內容又不能替換時,我們可以使用:%s/舊字元/新字元/gc,這時候vim則會顯示一些選項供我們選擇:

第乙個y表示yes即替換這個字元; 

第二個n表示no即不替換這個字元; 

第三個a表示從此游標所在字元開始替換後面所有的字元; 

第四個q表示放棄替換; 

第五個l表示替換第乙個並且進入插入模式。

後兩個,哎,我還不知道。。。

除此之外,我們可以使用開始行數,結束行數+s/舊字元/新字元/g來替換指定行數間的字元。

使用:w 檔名可以將當前檔案另存為另乙個檔案。

但是如果我們只需要將區域性檔案另存為怎麼辦了?這時候首先需要按v進入視覺化模式,然後使用游標移動命令選擇檔案,選擇完成後,按:w 檔名就會將選中內容另存為另乙個檔案。

使用:w! 檔名可以覆蓋另乙個檔案。

使用:r 檔名可以在當前檔案游標處開啟另乙個檔案,並且可以將二者合併。

使用vim -o(-o) 檔案1 檔案2 檔案3 …可以以垂直(水平)模式開啟多個檔案。使用control(ctrl)+w可以切換檔案。

使用:qa可以快速關閉所有檔案,如果有修改則需要:wqa!。

至此差不多就學完了vim的所有命令,當然這是我總結的,有不對的地方還請大家指出來,感謝!

vim使用指南

參考 normal mode 用於瀏覽檔案,也包含複製,貼上,刪除等操作。這種模式下,鍵盤按鍵會當做功能鍵處理,不會真正的鍵入這些字元 漫遊x 向後剪下乙個字元,如果是行尾則向前剪下 3x 剪下三個 xp 非行尾交換兩個字元,如果是bs變成sb 刪除dd 刪除游標所在行 200dd 刪除游標所在行及...

Vim基本使用指南

一般模式 移動游標的方法 h 或 向左方向鍵 游標向左移動乙個字元 j或 向下方向鍵 游標向下移動乙個字元 k或 向上方向鍵 游標向上移動乙個字元 l或 向右方向鍵 游標向右移動乙個字元 如果想要進行多次移動的話 例如向下移動 30行,可以使用 30j 或 30 的組合按鍵 亦即加上想要進行的次數 ...

Ubuntu下VIM使用指南

網路上類似的教程都是提示先執行如 下命令 sudo vim etc apt sources.list 但我相信有想當多的人,根本不會用vim。而且,網上可以找到的,關於vi的教程,更是多為能嚇死人的上百頁說明。其實,從我個人的實踐看,完全不需要如此誇張。要完成最基本的編輯,只要熟悉幾個命令,就是把v...