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