?? Ⅰ 基本概念
- vim 是一種 Linux 專門用來編寫代碼的多模式文本編輯器工具。
- vim 分別有命令、插入、底行三種模式,其功能區(qū)分如下:
1.命令模式
- 也稱為 [ 普通模式 ] 或 [ 正常模式 ]。
- 不能直接對文件進(jìn)行編輯,只能通過快捷鍵進(jìn)行對文本的編輯控制。
2. 插入模式
- 在該模式下才可以對文本進(jìn)行編輯,也就是俗稱的編輯模式。
3. 底行模式
- 對文件的保存或退出,也能用來進(jìn)行文件替換,找字符串,列出行號等操作。
- 在命令模式下,按下 shift + ; (也就是冒號 : ) 即可進(jìn)入該模式。
?? Ⅱ 基本操作
1. 進(jìn)入 / 退出 vim
進(jìn)入 vim
- 輸入 vim + 文件名后就會進(jìn)入對該文件的編輯界面。
- 在進(jìn)入 vim 之后,默認(rèn)處于 [ 命令模式 ],切換到 [ 插入模式 ] 才能編輯該文本。
退出 vim
在 [ 底行模式 ] 下輸入下列指令,就能以不同的方式退出 vim。
- q:未修改文件時(shí),直接退出。
- q!:修改過文件時(shí),不進(jìn)行保存,強(qiáng)制退出。
- wq:修改過文件時(shí),保存對文件的編輯然后退出。
2. vim 模式切換
- 注意:[ 插入模式 ] 與 [ 底行模式 ] 無法直接進(jìn)行切換,需要借助 [ 命令模式 ] 進(jìn)行中轉(zhuǎn)。
1. 切換至命令模式
- 進(jìn)入 vim 時(shí),默認(rèn)處于 [ 命令模式 ]。
- 如果處在 [ 插入模式 ] 或者 [ 底行模式 ] 時(shí),直接按下 ESC即可。
2. 切換至插入模式
- 在 [ 命令模式 ] 下,直接按下以下指令就能以不同的形式進(jìn)入 [ 插入模式 ] 。
選項(xiàng) | 說明 |
---|---|
i | 在光標(biāo)所在字符的前面開始插入 |
a | 在光標(biāo)所在字符的后面開始插入 |
o | 在光標(biāo)所在行的下一行開始插入 |
l | 在光標(biāo)所在行的頭部開始插入,若頭部有空格則在空格后插入 |
A | 在光標(biāo)所在行的末尾開始插入 |
O | 在光標(biāo)所在行的上一行開始插入 |
S | 刪除光標(biāo)所在行并開始插入 |
3. 切換至底行模式
- 在英文輸入法的前提下輸入shift + 分號 ; 就是輸入冒號 : 而已。
?? Ⅲ 命令模式
- 以下操作都是在 [ 命令模式 ] 下使用快捷鍵進(jìn)行的。
1. 光標(biāo)的移動(dòng)
- 現(xiàn)有一個(gè)光標(biāo)處在如下位置的文件,可以在命令模式下執(zhí)行對應(yīng)指令移動(dòng)光標(biāo)。
移動(dòng)光標(biāo)指令
- h:將光標(biāo)向左移動(dòng)
- j:將光標(biāo)向下移動(dòng)
- k:將光標(biāo)向上移動(dòng)
- l:將光標(biāo)向右移動(dòng)
- w:以單詞為單位進(jìn)行光標(biāo)后移
- b:以單詞為單位進(jìn)行光標(biāo)前移
- ^:將光標(biāo)移動(dòng)到光標(biāo)所在行的開頭
- $:將光標(biāo)移動(dòng)到光標(biāo)所在行的結(jié)尾
- gg:將光標(biāo)移動(dòng)到當(dāng)前文件的首行
- G:將光標(biāo)移動(dòng)到當(dāng)前文件的尾行
- ctrl + b:向上翻屏,前提是文件內(nèi)容夠多
- ctrl + f:向下翻屏。前提是文件內(nèi)容夠多
- 數(shù)字 + G:將光標(biāo)移動(dòng)到指定行
2. 復(fù)制與粘貼
復(fù)制
- 復(fù)制單行:yy,復(fù)制當(dāng)前光標(biāo)所在行
- 復(fù)制多行:數(shù)字 + yy,從光標(biāo)指定行開始向下復(fù)制指定行數(shù)。
粘貼
- 粘貼單次:p,從光標(biāo)當(dāng)前所處位置的下一行開始粘貼。
- 粘貼多次:數(shù)字 + p,將復(fù)制的內(nèi)容粘貼指定次。
示例:使用 2 + yy 從第五行開始向下復(fù)制兩行,然后使用 3 + p,將復(fù)制的內(nèi)容粘貼三遍在第六行的下一行。
3. 剪切與刪除
剪切
- 剪切單行:
- dd,剪切光標(biāo)所在行,同時(shí)將下一行上移填補(bǔ)被剪切的空缺。
- d,只剪切光標(biāo)所在行,但后面內(nèi)容不會上移。
- 剪切多行:數(shù)字 + dd,從光標(biāo)所在行向下剪切指定行,后面行會上移。
刪除
- 刪除整行:剪切之后不粘貼自然就是刪除了。
- 行內(nèi)往后局部刪除
- x:刪除光標(biāo)后面的一個(gè)字符。
- 數(shù)字 + x:在一行內(nèi),刪除從光標(biāo)處開始往后的 n 個(gè)字符。
- 行內(nèi)往前局部刪除
- X:刪除光標(biāo)前面的一個(gè)字符。
- 數(shù)字 + X:在一行內(nèi),刪除光標(biāo)前的 n 個(gè)字符。
4. 撤銷與恢復(fù)
撤銷
- u:撤銷上一步執(zhí)行的操作,類似于 Windows 的 ctrl + z
恢復(fù)
- ctrl + r:取消之前執(zhí)行的撤銷操作,類似于 Windows 的 ctrl + y
?? Ⅳ 底行模式
- 注意:在執(zhí)行下面的操作前需要先輸入英文的冒號 : 進(jìn)入底行模式。
1. 保存文件
- w:保存當(dāng)前文件。
- w 文件路徑:另存為指定文件。
2. 查找字符
- /關(guān)鍵字:往后查找第一個(gè)匹配的關(guān)鍵字。
- ?關(guān)鍵字:往前查找第一個(gè)匹配的關(guān)鍵字。
3. 退出文件
- q:若未對文件進(jìn)行修改,可直接使用 q 退出文件。
- q!:若已對文件進(jìn)行修改,不保存并且強(qiáng)制退出文件。
- wq:保存并退出當(dāng)前文件
4. 替換內(nèi)容
現(xiàn)有一份初始內(nèi)容如下的文件:
- s/搜索的內(nèi)容/指定內(nèi)容:用指定內(nèi)容替換光標(biāo)所在行 第一個(gè) 被搜索到的內(nèi)容。
- s/搜索的內(nèi)容/指定內(nèi)容/g:用指定內(nèi)容替換 光標(biāo)所在行 全部被搜多到的內(nèi)容。
- %s/搜索的內(nèi)容/指定內(nèi)容:用指定內(nèi)容替換 整個(gè)文件 每一行第一個(gè)被搜索到的內(nèi)容。
- %s/搜索的內(nèi)容/指定內(nèi)容/g:用指定內(nèi)容替換整個(gè)文件 全部 被搜索到的內(nèi)容。
5. 顯示行號
- set nu:顯示的行號是暫時(shí)的,下次再打開該文件時(shí)不會顯示。
6. 外部命令
- 可以不用退出 vim 在命令行執(zhí)行基本操作指令。
- 在 vim 界面的底行模式可以使用 ! 指令 的方式調(diào)用外部命令。
7. 多文件操作
- 在當(dāng)前文件工作時(shí),vim 不能像 vs 那樣直接切換到其他文件進(jìn)行操作 。
- 此時(shí)可以使用 vs 文件名,分屏打開其他文件進(jìn)行操作。
- 分頻模式下如何編輯文件:光標(biāo)在哪個(gè)文件就是對哪個(gè)文件進(jìn)行操作。
- 切換光標(biāo) (切換操作文件):ctrl + ww
?? Ⅴ 異常退出
- 編輯中的文件未保存直接退出就是異常退出。
- 見的最多的異常退出就是在命令模式下不小心 ctrl + z 之后,之后再打開文件就會出現(xiàn)以下情況。
1. 臨時(shí)解決
- 按下 q 之后出現(xiàn)以下信息,輸入 E 或者 R 就能進(jìn)入文件,但是之后還是會出現(xiàn)該提示。
2. 永久解決
- 異常退出只是將 vim 暫停,此時(shí) vim 變成了一個(gè)后端任務(wù),并沒有真的退出。一個(gè) Linux 文件只能被一個(gè)程序打開。
- 在異常退出 vim 時(shí),vim 會自動(dòng)在當(dāng)前目錄下生成一個(gè)隱藏的==.swp 臨時(shí)文件==方便恢復(fù)數(shù)據(jù)。
- 這個(gè)臨時(shí)文件會一直占著 vim,只要?jiǎng)h除該臨時(shí)文件即可。
隱藏文件的名字已經(jīng)在提示時(shí)給出了。
文章來源:http://www.zghlxwxcb.cn/news/detail-833355.html
- 知道了隱藏文件的名字之后只需要使用 rm 指令刪除該文件即可。
文章來源地址http://www.zghlxwxcb.cn/news/detail-833355.html
到了這里,關(guān)于【Linux 04】編輯器 vim 詳細(xì)介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!