vi/vim編輯器使用方法詳解
轉自:https://www.cnblogs.com/libaoliang/articles/6961676.html
vi編輯器是所有Unix及Linux系統下標準的編輯器,他就相當於windows系統中的記事本一樣,它的強大不遜色於任何最新的文字編輯器。他是我們使用Linux系統不能缺少的工具。由於對Unix及linux系統的任何版本,vi編輯器是完全相同的,學會它後,您將在Linux的世界裡暢行無阻。
vim 具有程式編輯的能力,可以以字型顏色辨別語法的正確性,方便程式設計;
vim可以當作vi的升級版本,他可以用多種顏色的方式來顯示一些特殊的資訊。
vim會依據副檔名或者是檔案內的開頭資訊, 判斷該檔案的內容而自動的執行該程式的語法判斷式,再以顏色來顯示程式程式碼與一般資訊。
vim裡面加入了很多額外的功能,例如支援正則表示式的搜尋、多檔案編輯、塊複製等等。 這對於我們在Linux上進行一些配置檔案的修改工作時是很棒的功能。
1.vi/vim是什麼?
①vi是Visual Interface的縮寫,即 視覺化介面
②vim是vi iMprove的縮寫,即 vi的增強版(具有語法著色功能)
2.vim模式有哪些?如何切換?
①三種模式
命令模式(預設):剛進入vim的時候,預設就是 命令模式,可以複製行,刪除行等。 輸入模式:可以輸入內容。 末行模式:在最下邊,除編輯模式,可以輸入諸多管理員命令
②模式轉換
命令模式→輸入模式: i:在當前游標所在字元的前面,轉為輸入模式 I:在當前游標所在行的行首轉換為輸入模式 a:在當前游標所在字元的後面,轉為輸入模式 A:在游標所在行的行尾,轉換為輸入模式 o:在當前游標所在行的下方,新建一行,並轉為輸入模式 O:在當前游標所在行的上方,新建一行,並轉為輸入模式 s:刪除游標所在字元 r:替換游標處字元 輸入模式→命令模式 ESC鍵 命令模式→末行模式 輸入:即可 轉為末行模式
末行模式-操作
末行模式→命令模式 ESC鍵
3.使用vim如何開啟檔案?
① vim /path/to/somefile :vim後跟檔案路徑及檔名 ,如果檔案存在,則開啟編輯檔案視窗,如果檔案不存在,則建立檔案
[[email protected] ~]# vim /etc/inittab
② vim + # :開啟檔案,並定位到第#行,#代表數字
[[email protected] ~]# vim +3 /etc/inittab
③ vim + :開啟檔案,定位到最後一行
[[email protected] ~]# vim + /etc/inittab
④ vim +/PATTERN:開啟檔案,定位到第一次被PATTERN匹配到的行的行首
[[email protected] ~]# vim +/start /etc/inittab
4.關閉檔案
末行模式下:
w:儲存 q:退出 wq 或 x:儲存退出,wq 和 x 都是儲存退出 q!:強制退出 w!:強制儲存,管理員才有許可權
命令模式下:
ZZ:儲存並退出
5.移動游標
命令模式下:
①逐字元移動 h:向左 l:向右 j:向下 k:向上 #h:移動#個字元 ②以單詞為單位移動 w:移到下一個單詞的詞首 e:跳至當前或下一個單詞的詞尾 b:跳至當前或上一個單詞的詞首 #w:表示移動#個單詞 ③行內跳轉 0:絕對行首 ^:行首第一個非空白字元 $:絕對行尾 ④行間跳轉 #G:跳轉到第#行 G:最後一行
末行模式下:
①行間跳轉 直接輸入行號 回車即可
6.翻屏:
命令模式下 Ctrl+f:向下翻一屏 Ctrl+b:向上翻一屏 Ctrl+d:向下翻半屏 Ctrl+u:向上翻半屏
7.刪除
命令模式下
①刪除單個字元: x:刪除游標所在處單個字元 #x:刪除游標所在處及向後共#個字元 ②刪除命令:d d命令跟 跳轉命令組合使用 如:dw 表示刪除游標所在位置到下一個單詞詞首所有字元 #dw,#de,#db :#dw表示 刪除當前游標所在處及向後第#個單詞詞首所有字元 dd:刪除當前游標所在行 #dd:刪除包含當前游標所在行內的#行
末行模式下:
位置符號
末行模式下,刪除命令d可以跟以上 位置符號 相結合使用 StartADD,EndADDd:刪除StartADD到EndADDd位置的所有行,例如:10,15d:刪除10到15行所有內容 .d:刪除游標所在行,同dd
8.貼上命令: p
p(小寫p):如果刪除的或複製的為整行內容,則貼上到游標所在行的下方,如果複製或刪除的內容為非整行,則貼上至游標所在字元的後面 P(大寫P):如果刪除的或複製的為整行內容,則貼上到游標所在行的上方,如果複製或刪除的內容為非整行,則貼上至游標所在字元的前面
9.複製命令:y
用法同d命令 命令模式 yy:複製當前行 yw (y#w,ye,y#e,yb,y#b):複製游標當前位置到下個單詞詞首內容.#代表數字 y#G:複製當前位置當#行處的所有內容 末行模式 StartADD,EndADDy:複製StartADD到EndADDd位置的所有行,例如:10,15d:複製10到15行所有內容 +3y:複製當前位置向下3行
10.修改c:先刪除內容,在轉換為輸入模式
c:用法同d
11.替換:r
r:單字元替換,會替換游標選中字元 R:替換模式,可以做字元替換。
12.撤銷編輯操作:u(undo)
u:撤銷前一次編輯操作 #u:直接撤銷#次操作 Ctrl+r:撤銷最近一次撤銷操作
13.重複前一次編輯操作.
.:比如 上一次dd刪除了一行,現在輸入.就可以重複dd刪除行的操作
14.視覺化模式:
命令模式: v:按字元選取,鍵盤控制游標 劃過 的區域被選取 V:按矩形選取,鍵盤控制游標劃過的行被選取
15.查詢:
末行模式: /PATTERN:從當前位置向後查詢 ?PATTERN:從當前位置向前查詢 n:向下查詢 N:向上查詢
16.查詢並替換
在末行模式下使用s命令 ADDR1,ADDR2s/PATTERN/String/gi ADDR1,ADDR2 表示地址;比如1,$表示全文 (%也表示全文) g:表示全域性替換 i:表示忽略大小寫
17.vim開啟多個檔案
vim FILE1 FILE2 FILE3 末行模式下 :next 切換到下一個檔案 :prev 切換到上一個檔案 :last 切換到最後一個檔案 :first 切換到第一個檔案 退出多個檔案 qa:全部退出
18.分屏顯示一個檔案
vim開啟檔案後 Ctrl+w,s:水平拆分視窗 Ctrl+w,v:垂直拆分視窗 在視窗間切換游標 Ctrl+w,ARROW 比如 Ctrl+w,→:(使用箭頭方向鍵)游標切換到右邊的視窗 比如 Ctrl+w,h(左), j(下), k(上), l(右) 也可以切換視窗 在末行模式下 :qa退出所有視窗
19.分視窗編輯多個檔案
vim -o:水平分割顯示 vim -O:垂直分割顯示 例如:vim -o /etc/rc.sysinit /etc/inittab :水平分割顯示/etc/rc.sysinit和/etc/inittab 這2個檔案
20.將當前檔案中部分內容儲存為另外一個檔案
末行模式下 w:表示儲存當前檔案 w /path/to/somewhere:將當前檔案另存為到路徑指定的地方 ADDR1,ADDR2w /path/to/somewhere:將ADDR1到ADDR2指定的地址文字 另存為到路徑指定的地方
21.將另一個檔案的內容填充在當前檔案中(r表示讀)
末行模式下 r: /path/to/somefile 例如:vim /etc/rc.sysinit 開啟檔案後,末行模式 輸入 :r /etc/inittab :會將 inittab檔案的所有內容附加到rc.sysinit檔案游標所在的位置
22.跟shell互動(vim 末行模式執行shell)
末行模式 ! command即可 例如: ! ls /etc/:會列出/ect目錄下所有檔案及目錄 按enter後回到vim編輯狀態
23.高階話題
在末行模式下 ①顯示或取消行號 set nu(set number):顯示行號 set nonu:取消顯示行號 ②顯示忽略或區分字元大小寫 set ic (set ignorecase):忽略大小寫 set noignorecase:區分大小寫 ③設定自動縮排 set ai(set autoindent):自動縮排 set noai:取消自動縮排 ④查詢到的文字高亮或取消高亮顯示 set hlsearch:高亮顯示搜尋到的文字 set nohlsearch:取消高亮顯示搜尋到的文字 ⑤語法高亮 syntax on:開啟語法高亮顯示 syntax off:關閉語法高亮顯示
24.vim配置檔案
全域性vim配置檔案:/etc/vimrc 個人vim配置檔案:~/.vimrc [[email protected] ~]# echo "set nu" >> /root/.vimrc # root使用者用vim開啟檔案時,顯示行號。