11個(gè)超級(jí)棒的Vi技巧和竅門(mén)
是否你剛剛接觸 Vi 還是想進(jìn)階,這些技巧可以很快讓你成為高級(jí)用戶。
Vi 編輯器是 Unix 和像 Linux 這樣的類 Unix 系統(tǒng)中 Linux ***的編輯器之一。無(wú)論您是 vi 新手還是想進(jìn)階,這里有 11 個(gè)技巧可以增強(qiáng)你使用的方式。
編輯
編輯長(zhǎng)文本時(shí)可能很難受,特別是編輯其中某一行時(shí),需要移動(dòng)許久才能到這行。這有個(gè)很快的方法:
1、 :set number 這個(gè)命令可是在編輯器左邊顯示行號(hào)。

您可以在命令行中輸入 vi +26 samp.txt 命令直接打開(kāi)文件到達(dá) 26 行,在 vi 編輯器中也可以輸入 :26 跳轉(zhuǎn)到 26 行。

快速導(dǎo)航
2、 i 將工作方式從“命令模式”更改為“輸入模式”,并在當(dāng)前光標(biāo)位置開(kāi)始插入內(nèi)容。
3、 a 除了是光標(biāo)之后開(kāi)始插入內(nèi)容,與上面的效果是一樣的。
4、 o 在光標(biāo)的下一行位置開(kāi)始插入內(nèi)容。 
刪除
如果您發(fā)現(xiàn)錯(cuò)誤或錯(cuò)別字,能快速的修正是很重要的。好在 Vi 都事先想好了。
了解 Vi 的刪除功能,保證你不會(huì)意外按下某個(gè)鍵并***刪除一行或多段內(nèi)容,這點(diǎn)至關(guān)重要。
5、 x 刪除當(dāng)前光標(biāo)的字符。
6、 dd 刪除當(dāng)前行 (是的,整行內(nèi)容!)
下面看可怕的部分:30dd 從當(dāng)前行開(kāi)始刪除以下 30 行!使用此命令請(qǐng)慎重。 
搜索
您可以在“命令模式”搜索關(guān)鍵字,而不用在大量文本內(nèi)容中手動(dòng)導(dǎo)航查找特定的單詞或內(nèi)容。
7、 :/<keyword> 搜索 < > 中的單詞并將光標(biāo)移動(dòng)到***個(gè)匹配項(xiàng)。
8、 導(dǎo)航到該單詞的下一個(gè)匹配項(xiàng),請(qǐng)輸入 n 并繼續(xù)按下, 直到找到您要找的內(nèi)容。
例如,在這個(gè)圖像中我要搜索包含 ssh 的內(nèi)容, Vi 光標(biāo)就會(huì)突出***個(gè)結(jié)果的開(kāi)始位置。

按下 n 之后, Vi 光標(biāo)就會(huì)突出下一個(gè)匹配項(xiàng)。

保存并退出
開(kāi)發(fā)人員 (或其他人) 可能會(huì)發(fā)現(xiàn)這個(gè)命令很有用。
9、 :x 保存您的工作并退出 Vi 。

10、 如果你想節(jié)省哪怕是納秒,那么這有個(gè)更快的回到終端的方法。不用在鍵盤(pán)上按 Shift+: ,而是按下 Shift+q (或者大寫(xiě)字母 Q ) 來(lái)進(jìn)入 Ex 模式 。但是如果你只是想按下 x 來(lái)保存退出,那就沒(méi)有什么區(qū)別(如上所示)。 
替換
如果您想將文中的某個(gè)單詞全部替換為一個(gè)單詞,這有個(gè)很巧妙的招式。例如,如果您想在一個(gè)大文件中將 “desktop” 替換為 “laptop” ,那么單調(diào)的搜索每個(gè)出現(xiàn)的 “desktop” 將其刪掉,然后再輸入 “laotop” ,是很浪費(fèi)時(shí)間的。
11、 :%s/desktop/laptop/g 這個(gè)命令將在整個(gè)文件中的 “desktop” 用 “laptop” 替換,他就像 Linux 的 sed 命令一樣。
這個(gè)例子中我用 “user” 替換了 “root” :


這些技巧應(yīng)該能幫組任何想開(kāi)始學(xué) Vi 的人。我有遺漏其他巧妙的提示嗎?請(qǐng)?jiān)谠u(píng)論中分享他們。
















 
 
 













 
 
 
 