Linux系統中的vi vim指令 詳解

2022-05-23 19:48:06 字數 3897 閱讀 2274

vi是unix世界裡極為普遍的全螢幕文字編輯器,vim是它的改進版本vi improved的簡稱。幾乎可以說任何一台unix機器都會提供這套軟體。

只要簡單的在shell下執行vi就可以進入 vi 的編輯環境。在實際操作之前先對它有個了解會比較好。

vi 有兩種模式,輸入模式以及指令模式。輸入模式即是用來輸入文字資料,而指令模式則是用來下達一些編排檔案、存檔、以及離開 vi 等等的操作指令。當執行 vi 後,會先進入指令模式,此時輸入的任何字元都視為指令。

第一步:

1、文字編譯工具vi使用

vi的名字取自於visual,意為「直觀」,它是乙個全螢幕編輯程式。還有gedit、emacs在linux系統中vi是最常用的編輯程式,它的文字編輯功能十分強大,但使用起來比較複雜。

2、linux系統中的vi其實是vim,是vi的增強版。vi編輯程式有兩種工作模式:

命令模式(指令模式):此模式下的按鍵當作指令來處理。

輸入模式:此模式的按鍵作為真正的輸入。

第二步:

vi操作模式的切換,要進入輸入模式,可以按如下命令鍵:

新增:『a』,從游標後開始輸入文字。『a』,從游標所在行末尾輸入新的文字。

插入:『i』,從游標前開始插入文字。『i』,從游標行的第乙個非空格字元前開始插入文字。

開始:『o』,從游標所在行下新增一行並進入輸入模式。『o』,從游標所在行上新增一行並進入輸入模式。

第三步: 

從輸入模式按esc進入命令模式

第四步: 

進入和退出vi

進入vi,在提示符下:

vi vi 檔名

退出vi,在指令模式下:

:q,退出

:wq,存檔後退出

:q!,不存檔強制退出

:x,強制存檔退出

第五步:

刪除和修改文字

指令模式下:

x:刪除游標處的乙個字元

dd:刪除游標所在行

r:修改游標所在字元

r:進入改寫狀態

s:刪除游標所在字元,並進入輸入狀態

s:刪除游標所在行,並進入輸入狀態

第六步:

游標移動

1、指令模式下:

h:向左移動一列

j 或+:向下移動一行

k 或-:向上移動一行

l:向右移動一列

組合:nh,nj,nk,nl。分別是移動n行(列)

在有方向鍵的鍵盤上,無論指令模式或輸入模式都可以用方向箭頭來移動游標

2、游標按行移動

指令模式下:

:n回車:將游標移動到第n行

:$回車或者l:將游標移動到最後一行

m:將游標移動到中間一行

h:將游標移動到第一行

:set number:顯示行號

:set nonumber:取消顯示行號

3、游標按單詞移動

指令模式下:

b:將游標移動到前乙個單詞頭

組合:nw、nb、ne

4、游標按字元移動

指令模式下:

$:將游標移動到當前行尾

^或0:將游標移動到當前行首

n|:將游標移動到當前行的第n個字元

游標返回原處

兩個單引號『』

第七步: 

文字編輯

1、翻頁

指令模式下:

ctrl+d:下翻半屏

ctrl+u:上翻半屏

ctrl+f:下翻一屏

ctrl+b:上翻一屏

2、查詢

指令模式下:

/string:從當前位置向前查詢字串string

?string:從當前位置向後查詢字串string

繼續查詢:

n:沿前述查詢方向繼續查詢同一字串

n:沿前述查詢方向的反方向繼續查詢同一字串

3、刪除文字

指令模式下:

x:刪除字元

dw:刪除單詞

dd:刪除行

d:刪除從游標到行末所有字元

dfm:刪除從游標到第乙個字元m間的文字

:5d:刪除第5行

:5,$d:刪除從第5行到最後一行

可以和整數n組合

4、撤銷和重複命令

指令模式下:

u:撤銷最後乙個更改操作

u:撤銷對本行的所有修改

5、文字替換

指令模式下:

m:替換當前字元為m,替換後仍為命令模式

r:替換當前字元後的一系列字元,替換後變為輸入模式。

s:多個字元替換單個字元

cw:單詞替換

cc:行替換

c:替換當前行剩餘部分

cfm:替換當前字元到指定的字元m

6、文字刪除與替換對比

命令型別           刪除           替換

字元                 x                r

單詞               dw             cw

行                  dd              cc

從游標到行尾         d               c

從游標到字元m     dfm           cfm

7、全域性替換

指令模式下:

搜尋當前行的第乙個例項

:s/bash/sch把當前行的第乙個bash換為sch

搜尋指定行的第乙個例項

:1,10s/bash/sch 把1到10行bash換為sch

:5,$s/bash/sch 把5到末行bash換為sch

設定過濾條件進行搜尋

:g/var/s/bash/sch把包含var行中的bash替換為sch

同一行中替換所有例項

:s/bash/sch/g把當前行中所有bash替換為sch

替換整個檔案中的所有例項

:1,$s/bash/sch/g把整個檔案中的bash替換為sch

8、移動和複製文字

指令模式下:

yy:複製當前行

dd:剪下當前行(刪除)

p、p:貼上當前行

9、複製和移動文字塊

指令模式下:

把某(幾)行複製並貼上到某行後

:5 copy8 把5行複製並貼上到第8行後

:1,5 copy$ 把1-5行複製並貼上到末行後

:.,$ copy0 把當前行到末行複製並貼上到檔案頭

把copy改為move即為移動文字塊(注:.表示當前行,0表示檔案頭,$表示檔案尾)

第八步: 

檔案儲存

指令模式下:

:w 儲存檔案

:wq或者:x或者zz 儲存並退出vi,返回linux提示符

:w f1.c 把當前檔案另存為f1.c

:q! 放棄對檔案的儲存,直接退出

1、儲存文字塊

指令模式下:

:2,5 write f2 把第2到第5行另存為檔案f2

儲存文字塊,並直接覆蓋掉已有(如果有)檔案

:2 write! f2 把第2行強行另存為檔案f2

向檔案追加文字

:2 write >> f2 把第2行追加到檔案f2末尾

第九步: 

與shell互動

指令模式下:

讀某檔案的內容到當前開啟檔案

:5 read a 把檔案a中的內容讀到當前開啟檔案的第5行後

在vi中執行shell命令

:!pwd

在vi中執行shell命令,並把結果新增到vi中

:5 read! pwd把pwd執行結果插入到第5行後

:e 在vi中編輯某檔案時,不退出vi而建立新檔案

:n 在vi中編輯某檔案時,不退出vi而載入新檔案

Linux中vi vim命令詳解

新增修改配置檔案一般都是使用預設的vi編輯器,長期編輯 的程式設計師會使用功能更強大的編輯器。簡單介紹下vi編輯器的使用方法 一 vi可以分為三種狀態,分別是命令模式 command mode 插入模式 insert mode 和底行模式 last line mode 各模式的功能區分如下 1 命令...

Linux中vi vim命令大全

vi 是 unix linux 下極為普遍的一種文字編輯器.vi 有各種變種,在不同的機器上有不同的變種軟體.其中 vim 比較好用也用得比較廣泛.vim 是 vi improved 的縮寫,表示更好的 vi.本文就說些其中比較有用,比較常用的命令一 一般模式 刪除 複製與貼上類命令 x,x x為向...

Linux 中 VI VIM 編譯器

1.vi 與 vim 所有的 unix like 系統都會內建 vi 文字編輯器,其他的文書編輯器則不一定會存在,但是目前我們使用比較多的是 vim 編輯器。vim 具有程式編輯的能力,可以主動的以字型顏色辨別語法的正確性,方便程式設計。vim是從 vi 發展出來的乙個文字編輯器。補完 編譯及錯誤跳...