什么是vim
vim 是Linux系统中一个强大的文本编辑器。
vim 功能比 vi 强大
为什么要使用vim
- 编辑配置文件
- 写脚本
- 批量修改
- 查找内容
- 语法检测高亮显示
![1648633131321](C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\1648633131321.png)
![1648633151006](C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\1648633151006.png)
vim的三种工作模式
![1648633186732](C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\1648633186732.png)
命令模式(普通模式)
最开始使用vim命令打开文件时,即进入命令模式
跳转光标
G:(Shift + g)将光标快速跳转到文件的末尾
gg:将光标跳转到文件的开头
Ngg:N代表阿拉伯数字,将光标跳转到第N行
$:(Shift + 4)将光标跳转到行末
^:(shift + 6)将光标跳转到行首
复制粘贴
yy:复制光标所在行的内容
Nyy:(YNY)N代表阿拉伯数字,复制光标所在行及后N行内容
p:将复制的内容,粘贴到光标所在行的下一行
P:将复制的内容,粘贴到光标所在行的上一行
删除剪切
dd:剪切,删除光标所在行的内容
Ndd|dNd:剪切,删除指定行数的内容
dG:删除光标所在行到文件末尾所有行的内容
D:将光标所在字符删除一直删到行末
x:剪切,删除光标所在字符
X:剪切,删除光标所在字符的前一个字符
撤销替换
r:替换光标所在字符
R:批量替换字符,替换光标所在字符及后面所有字符,直到按ESC结束
u:撤销上一步操作
Ctrl+r:恢复撤销
保存退出
ZZ:(Shift + zz) 保存并退出
编辑模式(输入模式)
从命令模式切换到编辑模式
# 进入编辑模式的标识,左下角 -- INSERT --
a:在光标所在字符之后,进入编辑模式
A:将光标跳转到行末,并进入编辑模式
o:在光标所在行的下一行(另起一行)进入编辑模式
O:在光标所在行的上一行,进入编辑模式
i:在光标所在字符之前进入编辑模式
I:将光标移动到行首,并进入编辑模式
s:删除光标所在字符,并进入编辑模式
S:删除光标所在行一整行内容,并进入编辑模式
从编辑模式切换回命令模式
Esc
末行模式(底行模式)
# 进⼊末⾏模式 只能从命令模式⼊末⾏模式
## ⽅式⼀ 输⼊:
## ⽅式⼆ 输⼊/
:w # write 写⼊,保存
:q # quit 退出
:wq # 保存并退出
:w! # 强制保存
:q! # 强制退出
:wq! # 强制保存并退出
:x # 保存退出
跳转⾏号
# 命令模式中,跳转⾏号 Ngg
:N N代表阿拉伯数字,将光标跳转到指定的⾏
内容的查找和替换
## 内容查找
/string:查找想要查找的字符串,输⼊回⻋后会⾼亮显示
按n:向下查找下⼀个字符串
按N:向上查找上⼀个字符串
## 内容替换
:/原内容/要替换的内容/
:/root/zls/ # 把root替换成zls(只这么写,不⽣效)
:s/root/zls/ # s:查找并替换
:s/root/zls/g # g:global 全局(默认只替换提⼀⾏内容)
:1,10s/root/zls/g # 1,10 把1-10⾏匹配到的内容全部替换
:%s/rpc/555/g # %代替所有⾏
:%s###g
把 /sbin/nologin 替换成 /bin/bash
:%s/\/sbin\/nologin/\/bin\/bash/g
:%s#/bin/bash#/sbin/nologin#g ## 推荐⽅式
分隔符可以随意使⽤,建议就是,原内容和新内容,⾥⾯不包含你写的分隔符即可。
\#abc $abc
末⾏模式报错
## ⽂件内容修改后,不保存想退出 :q,必须加!退出
E37: No write since last change (add ! to override)
## 针对root⽤户,只读⽂件⽆法修改,保存退出需要加! :wq!
E45: 'readonly' option is set (add ! to override)
## ⽆法打开这个⽂件
E212: Unable to open and write files
末⾏模式其他功能
# 显示⾏号
:set number # 简写: :set nu
# ⾃动缩进
:set autoindent # 简写: :set ai
# 不区分⼤⼩写
:set ignorecase # 简写: :set ic
# 查看⽂件中的结尾和制表符,等特殊符号
:set list
## 取消设置
:set no{ai|ic|nolist}
:set nonu
:set noai
:set noic
:set nolist
vim视图模式
视图模式,是属于命令模式之下的⼀种模式
- 块视图模式
Ctrl + v : 进⼊可视块视图模式
-- VISUAL BLOCK --
# 1.按光标删除选中的所有字符 x
# 2.批量修改⽂件(添加注释)
1)按Ctrl + v进⼊可视块视图模式
2)移动光标
- 1.按下键
- 2.Ngg
- 3.G
3)按 Shift + i 进⼊编辑模式
4)输⼊ "#"
5)按ESC退出编辑模式
- ⾏视图模式
shift + v 进⼊⾏视图模式
vim扩展选项
## ⽂件对⽐命令:diff (不推荐)
0 ✓ 11:21:31 root@zabbix-server,10.0.0.62:~ # diff zls.txt zls1.txt
2c2
<
---
> 2,xxx,132
4c4
< 5,123,456
---
> 5,123,457
## ⽂件对⽐命令:vimdiff(推荐)
## vim 同时编辑多个⽂件
-o:⽔平分割
-O:垂直分割
## Ctrl + ww 切换⽂件
## 编辑⽂件指定的⾏
vim +N :N代表阿拉伯数字