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,默認的是命令模式,即輸入的內容,系統全部當成是命令。當編輯模式執行完以後,自動回到命令模式。下面給出一張圖,說明這三種模式的切換:
2.1插入模式
命令 作用
a 在光標後附加文本
A 在本行行末附加文本
i 在光標前插入文本
I 在本行開始插入文本
o 在光標下插入新行
O 在光標上插入新行
2.2定位命令
命令 作用
h、方向左鍵 左移一個字符
j、方向下鍵 下移一行
k、方向上鍵 上移一行
l、方向右鍵 右移一個字符
$ 移至行尾
0 移至行首
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操作鍵盤圖