1.前言
vi/vim是linux中很重要的文本編輯器。我第一次使用這個編輯器時,很不習慣,甚至都不知道如何移動光标和插入字元。慢慢地經過學習,才知道如何使用vi/vim。
vi/vim的作用是建立、編輯和顯示文本檔案,在vi/vim中,沒有菜單,隻有指令。下面先說說vi和vim的差別:
簡單來說,他們都是多模式編輯器,不同的是vim是vi的更新版本,vim不僅相容vi的所有指令,還引入了一些新的特性
①方向鍵
在vi中是不支援方向鍵的
②多級撤銷
在vi裡,按u隻能撤銷上次指令,而在vim裡可以無限制的撤銷。
③易用性
vi隻能運作于unix中,而vim不僅可以運作于unix,還可以運作在windows,mac等多操作平台。
④文法高亮
vim可以用不同的顔色來加亮你的代碼。
⑤可視化操作
vim不僅可以再終端運作,也可以運作于windows、mac os中。
⑥對vi的完全相容
在某些情況下,可以把vim當做vi來使用。
2.常用指令
vi有三種工作模式:指令模式、插入模式和編輯模式。一進入vi,預設的是指令模式,即輸入的内容,系統全部當成是指令。當編輯模式執行完以後,自動回到指令模式。下面給出一張圖,說明這三種模式的切換:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0NXYFhGd192UvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TTzklZsdFZvZFShZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DN4kzN0UDM2ETOwATMzEDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
2.1插入模式
指令 | 作用 |
a | 在光标後附加文本 |
A | 在本行行末附加文本 |
i | 在光标前插入文本 |
I | 在本行開始插入文本 |
o | 在光标下插入新行 |
O | 在光标上插入新行 |
2.2定位指令
指令 | 作用 |
h、方向左鍵 | 左移一個字元 |
j、方向下鍵 | 下移一行 |
k、方向上鍵 | 上移一行 |
l、方向右鍵 | 右移一個字元 |
$ | 移至行尾 |
移至行首 | |
H | 移至螢幕上端 |
M | 移至螢幕中央 |
L | 移至螢幕下端 |
:set nu | 設定行号 |
:set nonu | 取消行号 |
gg G | 到第一行 到最後一行 |
nG | 到第n行 |
:n | 到第n行 |
2.3删除指令
指令 | 作用 |
x | 删除光标所在處字元 |
nx | 删除光标所在處後n個字元 |
dd | 删除光标所在行,ndd删除n行 |
dG | 删除光标所在行到檔案末尾的内容 |
D | 删除從光标所在處到行尾的内容 |
:n1,n2d | 删除指定範圍的行 |
2.4複制和剪切指令
指令 | 作用 |
yy、Y | 複制目前行 |
nyy、nY | 複制目前行一下n行 |
dd | 剪切目前行 |
ndd | 剪切目前行以下n行 |
p、P | 粘貼在目前光标所在行下或行上 |
注:在vi中,剪切就是删除之後再粘貼
2.5替換和取消指令
指令 | 作用 |
r | 取代光标所在處字元 |
R | 從光标所在處開始替換字元,按Esc結束 |
u | 取消上一步操作 |
注:比如改變單個字元,先輸入r,再輸入需要更改的字元。比如将字元a改成b。這适合用于少量修改時使用
2.6搜尋和替換指令
指令 | 作用 |
/string | 向前搜尋指定字元串 搜尋時忽略大小寫 :set ic |
n | 搜尋指定字元串的下一個出現位置 |
:%s/old/new/g | 全文替換指定字元串 |
:n1,n2s/old/new/g | 在一定範圍内替換指定字元串 |
注:n是從前往後,N是從後往前找
set noic是設定大小寫敏感
:n1,n2s/old/new/c 替換時進行詢問是否真的替換
ZZ與:wq的作用一樣,都是儲存退出
對于readonly檔案,如果是root或者改檔案所有者,即使該檔案沒有寫權限,使用:wq!也能儲存該修改之後的檔案。
僅僅儲存但不退出 :w
另存為 :w /root/file.bak
2.7其它指令
導入檔案 :r 檔案名
在vi中執行指令 :! 指令
定義快捷鍵 :map 快捷鍵 觸發指令
範例: :map ^P I#<ESC> 注:^p是這樣輸入的 ctrl+v+v --> ^p
:map ^B 0x
連續行注釋 :n1,n2s/^/#/g 注:^表示行首
:n1,n2s/^#//g
:n1,n2s/^/\/\//g
替換 :ab huhuimail [email protected] 取消ab指令 :unan huhuimail
:r !date 在vi中加入指令執行的結果
快捷鍵插入郵箱 :map ^e [email protected]
2.8修改使用者vim設定
修改使用者vim設定,比如能永久儲存快捷鍵
vi ~/.vimrc
預設這個檔案是空的,然後可以寫入一些快捷鍵
附:vi/vim操作鍵盤圖