Vim是一個相似於Vi的著名的功能強大、高度可定製的文本編輯器,在Vi的基礎上改進了不少新特性。vim是自由軟件,vim廣泛被推崇爲類vi編輯器中最好的一個,事實上真正的勁敵來自Emacs的不一樣變體。1999年Emacs被選爲Linuxworld文本編輯分類的優勝者,vim屈居第二。但在2000年2月vim贏得了Slashdot Beanie的最佳開放源代碼文本編輯器大獎,又將Emacs推至二線,總的來看,vim和Emacs在文本編輯方面都是很是優秀的。
vim是從vi發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被普遍使用。vim的設計理念是命令的組合,用戶學習了各類各樣的文本間移動/跳轉的命令和其餘的普通模式的編輯命令,而且可以靈活組合使用的話,可以比那些沒有模式的編輯器更加高效的進行文本編輯。同時vim與不少快捷設置和正則表達式相似,能夠輔助記憶,而且vim對程序員作了優化。
程序員
(1)vim編輯器有三種模式:
命令模式,插入模式,末行模式
Ctrl+Shift+T:快速打開一個shell終端
Ctrl+d:快速的刪除打開的多個終端
Ctrl+PgDn:快速的切換終端
Ctrl+PgUp:快速的切換終端正則表達式
(2)使用vim編輯器的格式:# vim /path/file
shell
(3)文件剛剛被打開的時候進入的是命令模式,咱們進入到【插入模式】有以下的方式:
i:從當前光標位置插入
a:從當前光標的下一個字符插入
o:在當前好的下一行生成一個空白行,並進入插入模式
I:光標跳到本行開頭,並進入插入模式
A:光標跳到本行結束,並進入插入模式
O:在當前行的上一行生成一個空白行,並進入插入模式
編程
(4)在【命令模式】下還有以下的操做技巧:
若是咱們插入一行信息後,發現不想執行這個操做了,能夠在命令模式下在鍵盤按下u撤銷:u
當咱們執行撤銷操做後,有時候感受撤銷操做並很差,但願取消撤銷操做,此時能夠取消撤銷操做:Ctrl+rvim
(5)若是在插入模式下,是沒有辦法直接進入到末行模式,須要先從插入模式退回到命令模式,再從命令模式進入到【末行模式】。
/---在命令模式下輸入「/」,進入到末行模式,表示在末行模式下查詢相關信息。此時鍵盤上按「n」表示查詢下一個;鍵盤上按「N」,表示查詢上一個。
:---在命令模式下輸入「:」,進入到末行模式,而後能夠進行相關信息的編輯。
\c---在末行模式使用「/」進行對應字符的查詢時,若是須要忽略大小寫,能夠加上「\c」,此時即可以查詢忽略大小寫後的全部字符信息了。
編輯器
(6)若是在插入模式下,編輯好相關的信息後,須要將文件進行保存,此時是須要進入到【末行模式】進行操做:
:q!:表示強制退出
:wq:表示保存並退出
:x:保存並退出
:w /path/filename:將當前的文本文件寫入到指定的位置(圖1-13和圖1-14)
:r /path/file:將指定路徑下的文本信息讀取到光標所在的位置(圖1-15和圖1-16)
:.!ifconfig:能夠在命令模式下按shift+兩次!號,而後輸入須要執行的命令,即可以將執行的文本信息讀取到光標所在的位置(圖1-17和圖1-18)
ide
(7)有時候咱們在【末行模式】下還能夠設置一些屬性信息。
:noh:能夠將以前搜索所產生的標黃信息的標記清除掉。
:set nu:在末行模式下設置,能夠顯示vim編輯器的行號
:set nonu:在末行模式下設置,能夠將vim編輯器的行號去除學習
(8)若是但願vim編輯器的行號屬性信息一直存在,能夠在當前用戶的家目錄下建立一個.vimrc的文件。
# vim .vimrc
優化
(9)因爲編輯的.vimrc文件只能在所對應的用戶家目錄下生效,若是系統中有大量用戶存在,但願全部的用戶在使用vim編輯器時都能生效,能夠在root用戶下編輯/etc/vimrc解決問題。
# vim /etc/vimrc
開放源代碼
(10)有時候咱們須要將文本中的信息進行替換操做,在【末行模式】下此時可使用以下的格式:
:s/rhce/rhca/g---替換當前行的文本(圖1-25和圖1-26)
:m,ns/rhce/rhca/g---替換指定的m至n行的全部信息(圖1-27)
:.,$-2s/rhce/rhca/g---替換當前行到倒數第三行的全部指定信息(圖1-28)
:%s/rhce/rhca/g---將全文替換爲指定的信息(圖1-29)
:%s/\/rhce\//rhca/g---咱們須要將「/rhce/」的字符信息替換爲「rhca」,可使用「\」的轉義符處理(圖1-30)
:%s#/rhce/#rhca#g---此用法同圖1-30的用法是同樣的。
:1000---在末行模式下輸入數字1000能夠直接跳轉/etc/services的第1000行(圖1-31)
(11)在【命令模式】下一般有如下的快捷命令:
yy---複製當前行
nyy---其中n表示任意的數字,表示複製所需的行數
p---將複製好的信息粘貼至光標所在行的下一行開始粘貼
dd---剪切,若是後續不粘貼的話就表明刪除
ndd---其中n表示任意的數字,表示從當前行開始將所須要的行數剪切
dG---從當前行刪除到最後一行
x---刪除單個字符
nx---其中n表示的是任意的字符,表示從當前光標開始日後刪除所指定的n個字符
r---替換當前光標所在的單個字符
R---連續替換當前光標至後面的任意字符,直至退出連續替換模式
nG---其中n表示任意的數字,在命令模式下表示切換到所指定的第n行
Shift+g---表示切換到最後一行
gg---連續按兩次g,表示切換到第一行
Shift+zz---在命令模式下實現,保存並退出
(12)在【末行模式】下,也能夠實現將當前一個文件分屏顯示編輯
:sp---實現分屏顯示編輯
Ctrl+ww---分屏顯示上下屏跳轉
(13)在【命令模式】下也可使用視圖功能,好比在/etc/samba/smb.conf配置文件中:
Ctrl+v---進入視圖模式(圖1-33)
x---可將選中的視圖信息刪除(圖1-34)
調整到320行---Ctrl+v---調整到314行---Shift+i---Shift+#---鍵盤Esc---向下箭頭:統一插入註釋行(圖1-35)
(14)在RHEL系統裏也有默認的vim編輯器的使用文檔,可使用# vimtutor打開。
(15)vim裏面的內容要所有複製,要怎麼輸入呢?
解答:在命令模式下輸入ggVGy便可。
—————— 本文至此結束,感謝閱讀 ——————