使用者工具

網站工具


os:linux:vi_vim

vi 和vim 的區別

它們都是多模式編輯器,不同的是vim 是vi的升級版本,它不僅相容vi的所有指令,而且還有一些新的特性在裡面。

vim的這些優勢主要體現在以下幾個方面:

  1. 多級撤消 我們知道在vi裡,按 u只能撤消上次命令,而在vim裡可以無限制的撤消。
  2. 易用性 vi只能運行於unix中,而vim不僅可以運行於unix,windows ,mac等多操作平臺。
  3. 語法加亮 vim可以用不同的顏色來加亮你的程式碼。
  4. 視覺化操作 就是說vim不僅可以在終端執行,也可以運行於x window、 mac os、 windows。
  5. 對vi的完全相容 某些情況下,你可以把vim當成vi來使用。

vi和vim都是Linux中的編輯器,不同的是vim比較高階,可以視為vi的升級版本。vi使用於文字編輯,但是vim更適用於coding。

現將vi/vim的命令列收集於下:

vi有3個模式:插入模式、命令模式、底行模式。

插入模式:在此模式下可以輸入字元,按ESC將回到命令模式。

命令模式:可以移動游標、刪除字元等。

底行模式:可以儲存檔案、退出vi、設定vi、查詢等功能(底行模式也可以看作是命令模式裡的)。

一、開啟檔案、儲存、關閉檔案(vi命令模式下使用)

vi filename  //開啟filename檔案  
:w           //儲存檔案  
:w vpser.net //儲存至vpser.net檔案  
:q           //退出編輯器,如果檔案已修改請使用下面的命令  
:q!          //退出編輯器,且不儲存  
:wq          //退出編輯器,且儲存檔案   

二、插入文字或行(vi命令模式下使用,執行下面命令後將進入插入模式,按ESC鍵可退出插入模式)

a    //在當前游標位置的右邊新增文字  
i    //在當前游標位置的左邊新增文字  
A    //在當前行的末尾位置新增文字  
I    //在當前行的開始處新增文字(非空字元的行首)  
O    //在當前行的上面新建一行  
o    //在當前行的下面新建一行  
R    //替換(覆蓋)當前游標位置及後面的若干文字  
J    //合併游標所在行及下一行為一行(依然在命令模式)   

三、移動游標(vi命令模式下使用)

1、使用上下左右方向鍵  
2、命令模式下:
   h     向左、
   j     向下 、
   k     向上、
   l     向右。  
   space 向右、
   Back  向左、
   Enter 移動到下一行首、
   -     移動到上一行首。   

四、刪除、恢復字元或行(vi命令模式下使用)

x     //刪除當前字元  
nx    //刪除從游標開始的n個字元  
dd    //刪除當前行  
ndd   //向下刪除當前行在內的n行  
u     //撤銷上一步操作  
U     //撤銷對當前行的所有操作   

五、搜尋(vi命令模式下使用)

/xxx    //向光標下搜尋xxx字串  
?xxx    //向光標上搜索xxx字串  
n         //向下搜尋前一個搜素動作  
N         //向上搜尋前一個搜尋動作  

六、跳至指定行(vi命令模式下使用)

n+        //向下跳n行  
n-        //向上跳n行  
nG        //跳到行號為n的行  
G         //跳至檔案的底部   

七、設定行號(vi命令模式下使用)

:set  nu     //顯示行號  
:set nonu    //取消顯示行號   

八、複製、貼上(vi命令模式下使用)

yy    //將當前行復制到快取區,也可以用 "ayy 複製,"a 為緩衝區,a也可以替換為a到z的任意字母,可以完成多個複製任務。  
nyy   //將當前行向下n行復制到緩衝區,也可以用 "anyy 複製,"a 為緩衝區,a也可以替換為a到z的任意字母,可以完成多個複製任務。  yw    //複製從游標開始到詞尾的字元。  
nyw   //複製從游標開始的n個單詞。  
y^    //複製從游標到行首的內容。
y$    //複製從游標到行尾的內容。  
p     //貼上剪下板裡的內容在游標後,如果使用了前面的自定義緩衝區,建議使用"ap 進行貼上。  
P     //貼上剪下板裡的內容在游標前,如果使用了前面的自定義緩衝區,建議使用"aP 進行貼上。   

九、替換(vi命令模式下使用)

:s/old/new         //用new替換行中首次出現的old  
:s/old/new/g       //用new替換行中所有的old  
:n,m s/old/new/g   //用new替換從n到m行裡所有的old  
:%s/old/new/g      //用new替換當前檔案裡所有的old   

十、編輯其他檔案

:e otherfilename    //編輯檔名為otherfilename的檔案。   

十一、修改檔案格式

 
:set fileformat=unix   //將檔案修改為unix格式,如win下面的文字檔案在linux下會出現^M。 
os/linux/vi_vim.txt · 上一次變更: 2022/11/08 03:32 由 127.0.0.1