Linux基本命令 vim命令(一)


vim的三種工作模式

命令模式、輸入模式和編輯模式的相互轉換,如圖

命令模式:使用 Vim 編輯文件時,默認處於命令模式。在此模式下,可以使用上、下、左、右鍵或者 k、j、h、l 命令進行光標移動,還可以對文件內容進行復制、粘貼、替換、刪除等操作。

輸入模式:在輸入模式下可以對文件執行寫操作。進入輸入模式的方法是輸入 i、a、o 等插入命令,編寫完成后按 Esc 鍵即可返回命令模式。

編輯模式:如果要保存、查找或者替換一些內容等,就需要進入編輯模式。編輯模式的進入方法為:在命令模式下按" :"鍵,Vim 窗口的左下方會出現一個" :"符號后,這時就可以輸入相關的指令進行操作了。操作完按Enter鍵執行,指令執行后會自動返回命令模式。

 使用Vim打開文件

為了避免誤操作我們將/etc下的profile復制到/tmp下進行操作,命令如下:

[root@localhost /]# cp /etc/profile  /tmp/profile.vim

使用vim 進入profile文件的命令模式

操作 功能描述
vim profile.vim 只是打開文件
vim +20 /tmp/profile.vim

打開文件后,直接定位指定行數處 ,

例如,打開 /tmp/profile.vim文件時直接進入第 20 行 

vim +/future /tmp/profile.vim

打開文件后,直接定位指定行數處 ,

例如,打開 /tmp/profile.vim文件時直接定位到"future"字符串所在行

打開文件后,接下來開始對文件進行操作。 

進入輸入命令模式

從命令模式進入輸入模式可以按下 I、i、A、a 、O、o、等鍵來完成,不同的鍵只是光標所處的位置不同而已。當進入輸入模式后,在 Vim 編輯窗口的左下角會出現"INSERT"標志,這就代表我們可行寫入操作了,在vim中光標是停留在字符上的,例如在光標后面插入就是指在光標所在的字符的后面插入;

操作 功能描述
i

在當前光標所在位置插入輸入的文本,光標后的文本相應向右移動

I 在光標所在行的行首插入輸入的文本,行首是該行的第一個非空白字符,相當於光標移動到行首執行 i 命令
a

在當前光標所在位置之后插入輸入的文本

A

在光標所在行的行尾插入輸入的文本,相當於光標移動到行尾再執行 a 命令

o

在光標所在行的下面插入新的一行。光標停在空的行首,等待輸入文本

O

在光標所在行的上面插入新的一行。光標停在空行的行首,等待輸入文本

光標移動命令

在由命令模式中 Vim 提供了大量的光標移動命令,這些命令需要在命令模式下執行。 

以字符為單位移動

在Vim中通過上、下、左、右方向鍵來移動光標,除此之外還可以通過以下按鍵來移動。

操作 功能描述
h 左移一個位置
j 往下一行
k 往上一行
l 右移一個位置

以單詞為單位移動

操作 功能描述
w 移動光標到下一個單詞的單詞首
b 移動光標到上一個單詞的單詞首
e 移動光標到下一個單詞的單詞尾

移動到行尾或者行首

操作 功能描述
$ 將光標移至行尾
0 或 ^ 將光標移至行首
n$ 將光標移至當前光標所在行的之后 n 行的行尾

移動到一行的指定字符處

操作 功能描述
fp 光標定位到字符 p 處。f 命令有一個使用條件,即光標需在指定字符前

移動到匹配的括號處(%命令)

操作 功能描述
 %   將光標移動到與一個"("匹配的")"(對於 [] 和 {} 也是一樣的處,需要將光標先定位在要匹配的符號處

移動到指定行處(nG 或 :n 命令)

操作 功能描述

nG

將光標快速地定位到指定行的行首

:n

將光標快速地定位到指定行的行首

 査找指定字符串 

操作 功能描述

命令模式中輸入"/ 要査找的字符串", 再按一下回車鍵

從光標所在行開始向下査找指定的字符串

命令模式中輸入"?要査找的字符串", 再按一下回車鍵

從光標所在行開始向上査找指定的字符串

/^Path

要査找一個以Path 為行首的行
Path$ 要査找一個以 Path 為行尾的行

說明:如果匹配的字符串有多個,則可以按"n"鍵向下繼續匹配査找,按"N"鍵向上繼續匹配査找。如果在文件中並沒有找到所要査找的字符串,則在文件底部會出現"Pattern not found"提示.,在査找過程中需要注意的是,要査找的字符串是嚴格區分大小寫的,如果想忽略大小寫,則輸入命令 ":set ic";調整回來輸入":set noic"。如果在字符串中出現特殊符號,則需要加上轉義字符"\"。常見的特殊符號有 \、*、?、\ $ 等。如果出現這些字符,例如,要査找字符串"10$",則需要在命令模式中輸入"/10\$"。

使用Vim進行替換

操作 功能
x 刪除光標位置指定的字符
dd 刪除光標所在的行
u 撤銷最近的修改
U 撤銷對當前行上做的所有修改
r 替換光標位置上的一個字符
R 替換從光標位置開始的字符,同時改變vi到文本輸入模式
.(點) 重復上一次的修改
%s/源字符串/替換的字符串/g 替換整篇文檔的字符串,例如: %s/root/liudehua/g  全文査找"root",然后替換成"liudehua"
替換起始處,替換結束處 s/源字符串/替換的字符串/g 替換范圍內的字符串,例如:10,20 s/root/liudehua/g  只替換從第 10 行到第 20 行的"root"

說明:按下"R"鍵替換后,Vim 編輯文件左下角會顯示"REPLACE",進入替換狀態。直到按 Esc 鍵才會退出替換;否則將一直處於替換狀態。

 使用 Vim 進行刪除、粘貼、復制

操作 功能
d 刪除指定位置的文本,並存到臨時的緩沖區中。可以使用put操作符(p或P鍵)訪問這個緩沖區
dd 刪除整行,通過在前面加上數字來刪除當前光標所在行下的多行
dG 刪除從光標所在行一直到文件末尾的全部內容
起始行,終止行d 刪除指定范圍的行,例如:刪除第 1~3 行,則輸入":1, 3d",會提示"3 fewer lines"
y 將指定位置的文本復制到臨時緩沖區。可以使用put操作符訪問這個緩沖區
yy 復制單行,通過在前面加上數字來復制當前光標所在行下的多行
P 將指定緩沖區的內容放到當前光標的位置之上
p 將指定緩沖區的內容放到當前光標的位置之下
J 將兩行進行連接,使其成為一行

說明:在使用d刪除時,此時被刪除的內容並沒有真正刪除,都臨時放在了內存中。將光標移動到指定位置處,按下"p"鍵,就可以將剛才刪除的內容又粘貼到此處。在軟件開發中可能需要將連續兩行進行互換,就可以將上面的一行過"dd"鍵刪除,再將光標移動到下面,通過"p"鍵將其重新粘貼,這樣就能夠達到兩行互換位置的目的。

 保存退出命令

操作 功能描述
:wq 保存文件,退出vi編輯器
:w 保存文件,但不退出vi編輯器
:q 退出vi編輯器
:q! 不保存文件,退出vi編輯器 
ZZ 保存文件,退出vi編輯器

說明:在對文件沒有寫權限的時候(顯示 readonly)需要在命令后面加!表示強制退出,例如:"w!"或"wq!"就意味着強制保存或強制保存退出,但如果你是文件的所有者或者 root 用戶,就可以強制執行;在保存時,如果要保留源文件,而另存為其他的文件,可以用"w新文件名",如"w /tmp/shadow.vi"。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM