新聞中心

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了慈利免費建站歡迎大家使用!
首先學(xué)習(xí)如何使用 Vim 打開文件。
Vim 打開文件
使用 Vim 打開文件很簡單,例如在命令行模式下打開一個自己編寫的文件 /test/vi.test,打開方法如下:
[root@itxdl ~]# vim /test/vi.test
剛打開文件時 Vim 處于命令模式,此時文件的下方會顯示文件的一些信息,包括文件的總行數(shù)和字符數(shù),以及當(dāng)前光標(biāo)所在的位置等,此時可以使用插入命令進入輸入模式對文件進行編輯,如圖 1 所示。
圖 1 Vim 打開文件
除此之外,我們還可以利用下表中打開文件的命令格式,針對特定情形使用適當(dāng)?shù)拇蜷_方式,可以大大提高我們的效率。
| Vi 使用的選項 | 說 明 |
|---|---|
| vim filename | 打開或新建一個文件,并將光標(biāo)置于第一行的首部 |
| vim -r filename | 恢復(fù)上次 vim 打開時崩潰的文件 |
| vim -R filename | 把指定的文件以只讀方式放入 Vim 編輯器中 |
| vim + filename | 打開文件,并將光標(biāo)置于最后一行的首部 |
| vi +n filename | 打開文件,并將光標(biāo)置于第 n 行的首部 |
| vi +/pattern filename | 打幵文件,并將光標(biāo)置于第一個與 pattern 匹配的位置 |
| vi -c command filename | 在對文件進行編輯前,先執(zhí)行指定的命令 |
使用 Vim 進行編輯
同樣,Vim 提供了大量的編輯快捷鍵,主要可分為以下幾類。
Vim 插入文本
從命令模式進入輸入模式進行編輯,可以按下 I、i、O、o、A、a 等鍵來完成,使用不同的鍵,光標(biāo)所處的位置不同,如表 3 所示。
| 快捷鍵 | 功能描述 |
|---|---|
| i | 在當(dāng)前光標(biāo)所在位置插入隨后輸入的文本,光標(biāo)后的文本相應(yīng)向右移動 |
| I | 在光標(biāo)所在行的行首插入隨后輸入的文本,行首是該行的第一個非空白字符,相當(dāng)于光標(biāo)移動到行首執(zhí)行 i 命令 |
| o | 在光標(biāo)所在行的下面插入新的一行。光標(biāo)停在空行首,等待輸入文本 |
| O(大寫) | 在光標(biāo)所在行的上面插入新的一行。光標(biāo)停在空行的行首,等待輸入文本 |
| a | 在當(dāng)前光標(biāo)所在位置之后插入隨后輸入的文本 |
| A | 在光標(biāo)所在行的行尾插入隨后輸入的文本,相當(dāng)于光標(biāo)移動到行尾再執(zhí)行 a 命令 |
Vim 查找文本
| 快捷鍵 | 功能描述 |
|---|---|
| /abc | 從光標(biāo)所在位置向前查找字符串 abc |
| /^abc | 查找以 abc 為行首的行 |
| /abc$ | 查找以 abc 為行尾的行 |
| ?abc | 從光標(biāo)所在為主向后查找字符串 abc |
| n | 向同一方向重復(fù)上次的查找指令 |
| N | 向相反方向重復(fù)上次的查找指定 |
例如,在 /etc/passwd.vi 文件中查找字符串 "root",則運行命令如圖 5 所示。
圖 5 使用 Vim 進行查找
如果在文件中并沒有找到所要查找的字符串,則在文件底部會出現(xiàn) "Pattern not found" 提示,如圖 6 所示。
圖 6 未查找到指定字符串的提示
在查找過程中需要注意的是,要查找的字符串是嚴格區(qū)分大小寫的,如查找 "shenchao" 和 "ShenChao" 會得到不同的結(jié)果。
如果想忽略大小寫,則輸入命令 ":set ic";調(diào)整回來輸入":set noic"。
如果在字符串中出現(xiàn)特殊符號,則需要加上轉(zhuǎn)義字符 "\"。常見的特殊符號有 \、*、?、$ 等。如果出現(xiàn)這些字符,例如,要查找字符串 "10$",則需要在命令模式中輸入 "/10\$"。
Vim 替換文本
| 快捷鍵 | 功能描述 |
|---|---|
| r | 替換光標(biāo)所在位置的字符 |
| R | 從光標(biāo)所在位置開始替換字符,其輸入內(nèi)容會覆蓋掉后面等長的文本內(nèi)容,按“Esc”可以結(jié)束 |
| :s/a1/a2/g | 將當(dāng)前光標(biāo)所在行中的所有 a1 用 a2 替換 |
| :n1,n2s/a1/a2/g | 將文件中 n1 到 n2 行中所有 a1 都用 a2 替換 |
| :g/a1/a2/g | 將文件中所有的 a1 都用 a2 替換 |
例如,要將某文件中所有的 "root" 替換為 "liudehua",則有兩種輸入命令,分別為:
:1, $s/root/liudehua/g
或
:%s/root/liudehua/g
上述命令是在編輯模式下操作的,表示的是從第一行到最后一行,即全文查找 "root",然后替換成 "liudehua"。
如果剛才的命令變成 :10,20 s/root/liudehua/g,則只替換從第 10 行到第 20 行的 "root"。
Vim刪除文本
| 快捷鍵 | 功能描述 |
|---|---|
| x | 刪除光標(biāo)所在位置的字符 |
| dd | 刪除光標(biāo)所在行 |
| ndd | 刪除當(dāng)前行(包括此行)后 n 行文本 |
| dG | 刪除光標(biāo)所在行一直到文件末尾的所有內(nèi)容 |
| D | 刪除光標(biāo)位置到行尾的內(nèi)容 |
| :a1,a2d | 函數(shù)從 a1 行到 a2 行的文本內(nèi)容 |
注意,被刪除的內(nèi)容并沒有真正刪除,都放在了剪貼板中。將光標(biāo)移動到指定位置處,按下 "p" 鍵,就可以將剛才刪除的內(nèi)容又粘貼到此處。
Vim復(fù)制和粘貼文本
| 快捷鍵 | 功能描述 |
|---|---|
| p | 將剪貼板中的內(nèi)容粘貼到光標(biāo)后 |
| P(大寫) | 將剪貼板中的內(nèi)容粘貼到光標(biāo)前 |
| y | 復(fù)制已選中的文本到剪貼板 |
| yy | 將光標(biāo)所在行復(fù)制到剪貼板,此命令前可以加數(shù)字 n,可復(fù)制多行 |
| yw | 將光標(biāo)位置的單詞復(fù)制到剪貼板 |
Vim其他常用快捷鍵
某些情況下,可能需要把兩行進行連接。比如說,下面的文件中有兩行文本,現(xiàn)在需要將其合并成一行(實際上就是將兩行間的換行符去掉)。可以直接在命令模式中按下 "J" 鍵,按下前后如圖 10 所示。
圖 10 按下 "J" 鍵前后
如果不小心誤刪除了文件內(nèi)容,則可以通過 "u" 鍵來撤銷剛才執(zhí)行的命令。如果要撤銷剛才的多次操作,可以多按幾次 "u" 鍵。
Vim 保存退出文本
Vim 的保存和退出是在編輯模式中進行的,其常用命令如下表所示。
| 命令 | 功能描述 |
|---|---|
| :wq | 保存并退出 Vim 編輯器 |
| :wq! | 保存并強制退出 Vim 編輯器 |
| :q | 不保存就退出 Vim 編輯器 |
| :q! | 不保存,且強制退出 Vim 編輯器 |
| :w | 保存但是不退出 Vim 編輯器 |
| :w! | 強制保存文本 |
| :w filename | 另存到 filename 文件 |
| x! | 保存文本,并退出 Vim 編輯器,更通用的一個 vim 命令 |
| ZZ | 直接退出 Vim 編輯器 |
需要注意的是,"w!" 和 "wq!" 等類似的指令,通常用于對文件沒有寫權(quán)限的時候(顯示 readonly,如圖 12 所示),但如果你是文件的所有者或者 root 用戶,就可以強制執(zhí)行。
圖 12 只讀文件
當(dāng)前題目:Linux Vim基本操作(文件的打開和編輯)完全攻略(有圖有真相)
網(wǎng)頁地址:http://fisionsoft.com.cn/article/ccshhgp.html


咨詢
建站咨詢
