本文轉(zhuǎn)載自:簡(jiǎn)書作者 IstvanShaw 的文章 Vim編輯器入門
我們常說(shuō):Linux中一切都是文件。因此使用文本編輯器編輯配置文件參數(shù)是一鍵非常重要的事情根竿,而最為廣大用戶熟知的文本編輯器非vim莫屬截碴;今天我們就來(lái)簡(jiǎn)單了解一下vim文本編輯器的使用憔辫。
一、vi與vim
在學(xué)習(xí)vim的使用之前金顿,我們需要介紹一下vi文本編輯器:
- 所有類UNIX系統(tǒng)都會(huì)內(nèi)置vi文本編輯器臊泌;
- 很多軟件的編輯接口會(huì)調(diào)用vi,比如之前介紹過(guò)的 crontab 揍拆;
上述兩個(gè)特點(diǎn)造就了可以成為vi高級(jí)版的vim如今地位渠概。vim與vi最大的不同在于其語(yǔ)法高亮功能,該點(diǎn)使其不僅是一個(gè)文本編輯器嫂拴,更是程序開(kāi)發(fā)工具播揪。
二、vi的使用
- 讓vi或者vim如此受歡迎的主要原因筒狠,在于其三種模式:
-
一般模式
打開(kāi)一個(gè)文件就進(jìn)入該模式猪狈;該模式中可以移動(dòng)光標(biāo)、對(duì)文本進(jìn)行 復(fù)制 粘貼 刪除 查找 等操作窟蓝;
- 編輯模式
一般模式下罪裹,按a
,i
,o
鍵可以進(jìn)入(a
鍵 與i
鍵分別是在光標(biāo)后面一位和當(dāng)前位置切換到編輯模式饱普,而o
鍵則是在光標(biāo)的下面再創(chuàng)建一個(gè)空行运挫,此時(shí)可敲擊a
鍵進(jìn)入編輯模式);該模式中可以對(duì)文件文本進(jìn)行編輯套耕,按Esc
鍵回到一般模式谁帕;
- 命令行模式
一般模式下,輸入以:
,/
,?
開(kāi)頭的命令進(jìn)入冯袍;該模式中光標(biāo)在屏幕最下一行匈挖,可以輸入一些對(duì)文件操作的命令,按Esc
鍵回到一般模式康愤;
ps:一般模式和編輯模式儡循、一般模式和命令行模式之間可以互相切換,但是編輯模式和命令行模式之間無(wú)法互相切換征冷。
- 一般模式和編輯模式常用快捷鍵
快捷鍵 | 說(shuō)明 |
---|---|
h 择膝、←
|
光標(biāo)向左移動(dòng)一個(gè)字符 |
j 、↓
|
光標(biāo)向下移動(dòng)一行 |
k 检激、↑
|
光標(biāo)向上移動(dòng)一行 |
l 肴捉、→
|
光標(biāo)向右移動(dòng)一個(gè)字符 |
Ctrl+f 、PageDown
|
向下翻頁(yè) |
Ctrl+b 叔收、PageUp
|
向上翻頁(yè) |
0 齿穗、Home
|
光標(biāo)移動(dòng)到所在行最前字符 |
$ 、End
|
光標(biāo)移動(dòng)到所在行最后字符 |
G |
光標(biāo)移動(dòng)到該文件最后一行 |
gg |
光標(biāo)移動(dòng)到該文件第一行 |
X 饺律、Backspace
|
刪除光標(biāo)前一個(gè)字符 |
x 窃页、Del
|
刪除光標(biāo)后一個(gè)字符 |
[rownum]Enter |
光標(biāo)向下移動(dòng) [rownum] 行 |
dd |
刪除(剪切)光標(biāo)所在行 |
[rownum]dd |
刪除(剪切)從光標(biāo)處開(kāi)始的 [rownum] 行 |
yy |
復(fù)制光標(biāo)所在行 |
[rownum]yy |
復(fù)制光標(biāo)處開(kāi)始的 [rownum] 行 |
n |
顯示搜索的下一個(gè)字符串 |
N |
顯示搜索的上一個(gè)字符串 |
u |
撤銷 |
. 、Ctrl+r
|
重復(fù)上一個(gè)操作 |
p |
粘貼前剪切或復(fù)制的內(nèi)容 |
- 命令行模式常用命令
命令 | 說(shuō)明 |
---|---|
:w |
保存 |
:q |
退出 |
:q! |
放棄修改強(qiáng)制退出 |
:wq! |
強(qiáng)制保存退出 |
:set nu |
顯示行號(hào) |
:set nonu |
隱藏行號(hào) |
:[rownum] |
跳轉(zhuǎn)到 [rownum] 行 |
:s/[str1]/[str2] |
將當(dāng)前行第一個(gè) [str1] 替換為 [str2] |
:s/[str1]/[str2]/g |
將當(dāng)前行所有 [str1] 替換為 [str2] |
:%s/[str1]/[str2]/g |
將全文所有 [str1] 替換為 [str2] |
?[str] |
搜索 [str] |
/[str] |
反向搜索 [str] |
三、vim的功能
- vim的保存文件腮出、恢復(fù)與打開(kāi)時(shí)的警告信息
當(dāng)我們?cè)谑褂胿im編輯文件時(shí)帖鸦,vim會(huì)把我們進(jìn)行的操作保存在以編輯文件名加.swp命名的隱藏臨時(shí)文件中;
當(dāng)遇到其他用戶在編輯同一個(gè)文件或者其他未知的原因?qū)е聉im崩潰后胚嘲,我們可以使用這個(gè)臨時(shí)文件恢復(fù)之前進(jìn)行的操作作儿;
- 新建一個(gè)名為 xdltestvim.json 的文件,使用 Ctrl+z 快捷鍵使vim在后臺(tái)運(yùn)行
vim xdltestvim.json
-
使用
ls -al
命令查看當(dāng)前文件夾信息馋劈,可以看到名為 .xdltestvim.json.swp 隱藏臨時(shí)文件
-
當(dāng)我們嘗試?yán)^續(xù)編輯 xdltestvim.json 這個(gè)文件時(shí)攻锰,會(huì)出現(xiàn)提示:
并給出5個(gè)操作項(xiàng):
操作項(xiàng) | 說(shuō)明 |
---|---|
[O]pen Read-Only |
只讀模式打開(kāi)文件 |
[E]dit anyway |
正常模式打開(kāi),不使用之前臨時(shí)保存的操作妓雾,會(huì)改變之前的操作 |
[R]ecover |
恢復(fù)之前的操作娶吞,完成后需要手動(dòng)刪除隱藏臨時(shí)文件 |
[Q]uit |
退出 |
[A]bort |
忽略,類似于 [Q]uit
|
根據(jù)給定的操作快捷鍵可進(jìn)行對(duì)應(yīng)的操作械姻。
- 塊選擇
vim一般模式和編輯模式下可以使用快捷鍵進(jìn)行文本的塊選擇:
-
v
字符選擇移袍,選擇從按下v
開(kāi)始到當(dāng)前光標(biāo)位置的字符:
-
V
行選擇,選擇從按下V
開(kāi)始到當(dāng)前光標(biāo)位置的行:
-
Ctrl+v
矩形選擇盟猖,選擇從按下Ctrl+v
開(kāi)始到當(dāng)前光標(biāo)位置所畫出矩形框內(nèi)的字符:
文本選擇之后俩块,可以使用之前介紹的 y
、d
欢揖、p
快捷鍵進(jìn)行復(fù)制陶耍、刪除、粘貼她混。
- 多文件編輯
當(dāng)我們想要把一個(gè)文件中的文本復(fù)制到另一個(gè)文件中時(shí)烈钞,就可以使用vim的多文件編輯功能;
命令 | 說(shuō)明 |
---|---|
vim [file1] [file2] |
同時(shí)編輯文件 [file1] 和 [file2]
|
:files |
查看當(dāng)前正在編輯的文件 |
:n |
切換到編輯下一個(gè)文件 |
:N |
切換到編輯上一個(gè)文件 |
- 多窗口功能
在vim命令行模式下使用:sp [filename]
命令在同時(shí)以多個(gè)窗口中打開(kāi)多個(gè)文件坤按;
多窗口功能常用快捷鍵:
快捷鍵 | 說(shuō)明 |
---|---|
Ctrl+w j 毯欣、Ctrl+w ↓
|
切換到下一個(gè)窗口 |
Ctrl+w k 、Ctrl+w ↑
|
切換到上一個(gè)窗口 |
Ctrl+w q |
關(guān)閉下一個(gè)窗口臭脓,等同于先切換到下一個(gè)窗口再使用 :q 關(guān)閉 |
- vim常用命令示意圖
圖片轉(zhuǎn)自 deniro_li 的CSDN文章 vim 常用指令操作示意圖