Vim是從vi發(fā)展出來的一個高級文本編輯器,在編寫程序時非常有用,經(jīng)常被認為“程序員的編輯器”,支持Linux、Mac OS、Windows系統(tǒng),它具有以下附加功能:語法突出顯示,全面的幫助系統(tǒng),本地腳本(vim script),文本選擇的可視模式和文件比較(vim diff)。在終端中輸入vim [filename]命令即可進入Vim編輯器對該文件進行編輯,若文件不存在,則會在當前目錄下以這個文件名新建一個文件。
vim 擁有** 插入模式 ** 、正常模式、命令模式,進入vim后會直接進入編輯模式,按下i進入插入模式,按Esc退出插入模式,在編輯模式下輸入:即可進入命令模式,進行保存、退出等操作。在這里總結(jié)一下vim入門的按鍵功能:
移動光標
要確保按Esc退出插入模式,回到正常模式當中
| 按鍵 | 功能 |
|: --- :| : --- : |
|h或←|光標左移|
|l或→| 光標右移
|k或↑| 光標上移
|j或↓ |光標下移
|Ctrl+f |向下翻一頁
|Ctrl+b |向上翻一頁
|Ctrl+d |向下翻半頁
|Ctrl+u |向上翻半頁
|0|數(shù)字鍵0表示移動光標到行首
|$|從當前光標當前位置直到當前行末
|w|從當前光標當前位置直到下一個單詞起始處,不包括它的第一個字符
|e|從當前光標當前位置直到單詞末尾,包括最后一個字符
VIM的進入和退出
| 按鍵 | 功能 |
|: --- :| : --- : |
|:w |保存數(shù)據(jù)
|:w filename |保存數(shù)據(jù)到文件中
|:w! |保存時強制寫入數(shù)據(jù),不管文件是否為只讀文件
|:q |關(guān)閉Vim,對所做的修改不做保存
|:wq |強制保存數(shù)據(jù)并關(guān)閉Vim
|:q! | 強制關(guān)閉vim
文本編輯之插入
| 按鍵 | 功能 |
|: --- :| : --- : |
|i|在光標前插入文本
|a|在光標后插入文本
|A|在一行后插入文本
|o(小寫)|在光標下方打開新一行并進入插入模式
|O(大寫)|在光標上方打開新一行并進入插入模式
|y|(復(fù)制)高亮的文本
|p|將最后一次刪除或者復(fù)制的內(nèi)容放置在當前行的下一行
|r filename| 向當前文件插入另外的文件(filename)內(nèi)容
文本編輯之刪除
| 按鍵 | 功能 |
|: --- :| : --- : |
|x |刪除光標所在位置的字符
|dw|從光標處刪除至一個單詞的末尾,包括后面的空格(個人理解的意思)
|de|從當前光標處刪除至單詞的末尾,不包括后面的空格(個人理解的意思)
|d$| 從當前光標刪除到行末
|dd | 刪除一整個當前行
撤銷類命令
| 按鍵 | 功能 |
|: --- :| : --- : |
|u|撤銷最后執(zhí)行的(一次)命令
|U|恢復(fù)該行的原始狀態(tài)
|Ctrl+R|重做(恢復(fù))被撤銷的命令
|d$| 從當前光標刪除到行末
|dd | 刪除一整個當前行
替換類命令
| 按鍵 | 功能 |
|: --- :| : --- : |
|r|替換光標所在位置的字符
|R|可連續(xù)替換多個字符
|ce|改變文本直到一個單詞的末尾
|cw|改變文本直到一個單詞的末尾
|:s/a/b/|可以把a替換為 b(只改變第一個匹配串)
|:s/a/b/g|可以把a替換為 b(全局改變)
|:#,#s/a/b/g| #,# 代表的是替換操作的若干行中 首尾兩行的行號
|:%s/a/b/g|替換整個文件中的每個匹配串
|:%s/a/b/gc|會找到整個文件中的每個匹配串,并且對每個匹配串提示是否進行替換。
定位及搜索命令
| 按鍵 | 功能 |
|: --- :| : --- : |
|v|進入可視模式進行選取
|ctrl+G|顯示當前編輯文件中當前光標所在行位置以及文件狀態(tài)信息
|G|跳轉(zhuǎn)到文件最后一行
|gg|跳轉(zhuǎn)到文件第一行
|行號+G| 返回到您第一次按下CTRL-G 時所在的行
|/+字符串 | 在當前文件中查找該字符串
|?+字符串 | 在當前文件逆向查找該字符串
|n | 查找同上一次的字符串
|N | 反向查找同上一次的字符串
|% | 可以查找配對的括號 )、]、}
關(guān)于命令和對象
許多改變文本的命令都由一個操作符和一個動作構(gòu)成,還可以加上數(shù)字表示計數(shù)
operator number motion
例如:d2w
d - 刪除操作符。
2 -刪除2次。
motion - 操作符的操作對象(在下面列出)。
一個簡短的動作列表:
w - 從當前光標當前位置直到下一個單詞起始處,不包括它的第一個字符。
e - 從當前光標當前位置直到單詞末尾,包括最后一個字符。
$ - 從當前光標當前位置直到當前行末。
只要明白這個格式,許多命令都是如此組合而來的,大家可以試試。
本文只是為了簡明地介紹一下 Vim 編輯器,vim還有很多很多的命令,本文所介紹的距離完整的差得很遠。路漫漫其修遠兮,吾將上下而求索~