天天看點

Linux學習筆記——vi/vim編輯器指令快速入門

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,預設的是指令模式,即輸入的内容,系統全部當成是指令。當編輯模式執行完以後,自動回到指令模式。下面給出一張圖,說明這三種模式的切換:

Linux學習筆記——vi/vim編輯器指令快速入門

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

預設這個檔案是空的,然後可以寫入一些快捷鍵

Linux學習筆記——vi/vim編輯器指令快速入門

附:vi/vim操作鍵盤圖

Linux學習筆記——vi/vim編輯器指令快速入門

繼續閱讀